09. marts 2004 - 15:13Der er
6 kommentarer og 1 løsning
ViewState: Dynamiske generede websider..
Jeg har en side, hvor jeg generer en tabel ud fra et array. Tabellen bliver udfyldt ved at jeg laver de forskellige rows, cells og controls. eks. TableRow tb = new TableRow(); TableCell tc = new TableCell(); TextBox tb = new TextBox(); (herefter add'er jeg dem til tablen...)
Disse bliver lavet i OnInit metoden. I page_load tildeler jeg dem en værdi, hvis ikke det er postback
Mit spørgsmål er. Når jeg har dynamisk generede text-boxes (controls), hvordan får jeg den så til at huske de ændringer der er lavet, hvis der kommer et postback? Altså hvis jeg har tastet noget ind i en af textbox'erne og laver en anden ændring på siden, hvordan får jeg ViewState til automatisk at indsætte den rigtige værdig igen. Eller er dette ikke muligt, så man er nødt til at lave et par krumspring?
Naa, nej jeg var vist lidt for hurtig... Har du proevet med tb.EnableViewState = true;
Jeg er ikke helt sikker paa om det du oensker er bare at bevare vaerdien i tekstboksene eller om de bliver paavirket/aendret af de andre aendringer paa siden?
Det er at bevare dem.... Men jeg tror faktisk at jeg er kommet frem til en løsning. Men det skal jeg lige checke i aften. Det var andet steds i koden det var galt, men jeg vender nok lige tilbage...
Du har faktisk ret i at de selv bliver opdateret. Så dit svar var faktisk rigtig, blot skal man huske at genere controlerne hver gang uden at tildele dem en værdi. En fin løsning er at placere denne kode i OnInit metoden.
I mit telefælde var problemet at når jeg lavede ændringer, så skulle jeg gemme deres state manuelt, da jeg lavede nogle ændringer på disse.
Jeg er i gave humør, så du skal nok få dine point.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.