Mit gæt er at du ikke initialiserer korrekt efter webforms måden at gøre tingene på.
Webforms har en meget kort levetid (objektmæssigt) - så der køres din constructor, udføres de kaldte events og så kastes alting væk.
Næste gang du modtager en postback så opbygges alting op igen så her laves dit objekt igen.
Det specielle i webforms er at den gemmer state på dine elementer i siden - såsom fx en tekstbox.
Dette gemmer den i viewstate som er noget lagret inde i siden.
Load: Siden laves og sendes ud til brugeren
Action: Brugeren indskriver noget i din tekstboks og trykker på en knap
Postback: Siden sendes derfor til serveren (dig) og state (tekst) er gemt for dig.
Derfor skal du ikke selv huske at sætte dine elementer til det som brugeren sidst har sat dem til for gør ASP.NET for dig.
Så hvis du i constructoren laver
- public partial class Default : System.Web.UI.Page
- {
- Data dataClass = new Data();
- dataClass.Server = txtboks1.text;
- }
vil du automatisk få sat dit objekt til det som der står i tekstboksen.
Men husk dit objekt dataClass er nu den instans der lever i din constructor og ikke længere, så så snart den er færdig så er objektet væk fordi der er intet der holder fast i den.
Så hvis du i en anden metode laver første linie, så er dette en ny instans og dermed er Server ikke sat.
Hvis du vil dele dit objekt andre steder kan du lade det blive en del af din side, ved at have en property (GET/SET) efter din constructor, hvori du sætter din Data-class.
- public partial class Default : System.Web.UI.Page
- {
- Data dataClass = new Data();
- dataClass.Server = txtboks1.text;
- DataProperty = dataClass;
- }
-
- public Data DataProperty {get; set;}
-
- public string CorrectLocalHost()
- {
- DataProperty.Server = DataProperty.Server.Replace("localhost", "ip-adress-goes-here");
- }
Her vil din CorrectLocalHost stadig have dit objekt fordi du har lagt det ind i en property som holder på objektet, når din constructor er ovre. Dermed forsvinder dit objekt ikke og du vil kunne få fat i det i når du et andet sted kalder CorrectLocalHost().
Så hvis du har løst det ved at lave dit data-objekt igen (new Data() ) så er det ikke længere samme objekt og derfor din værdi er "forsvundet".
Alternativt skal du begynde at se på muligheder med static.
Håber det gav mening og var forståeligt