Avatar billede mickni33 Nybegynder
17. september 2010 - 12:46 Der er 6 kommentarer og
2 løsninger

viewstate... hvordan?

Hvordan bruger jeg viewstate? har prøvet at lege lidt med det men kan ikke få det til at fungere. kan ikke se i eksemplerne på nettet hvad det er der skal stå som index i ViewState["Hvad skal der stå her"]

Hvergang jeg vælger en dato i min Ajax kalender control skal den addes til mit panel (i en textbox). intet kommer frem i mit panel når jeg bruger dette kode:


  SearchCriteriaPanel = (Panel)ViewState["SearchCriteriaPanel"];
                TextBox agencytextbox = new TextBox();

  dateFrom.ReadOnly = true;
                dateFrom.BackColor = System.Drawing.Color.White;
                dateFrom.Text = FraDatoTextBox.Text;
                dateFrom.BorderStyle = BorderStyle.None;
                dateFrom.Width = 100;
                SearchCriteriaPanel.Controls.Add(dateFrom);

ViewState["SearchCriteriaPanel"] = SearchCriteriaPanel;
Avatar billede mickni33 Nybegynder
17. september 2010 - 12:46 #1
og det er asp.net 4.0 code behind
Avatar billede lasserasch Juniormester
17. september 2010 - 15:54 #2
Du kan gemme værdier i ViewState indenfor samme side.

Men for at opdatere en textbox skal du jo lave et postback. Enten via et AJAX Update Panel eller hele siden igen.


Forstår dog ikke helt hvorfor du vil bruge viewstate til det manuelt? De fleste kalender kontroller laver jo automatisk et postback. Og når det sker kan du jo køre din C# kode og tilføje kalenderens værdi til din tekstboks.

Mvh.
Lasse
Avatar billede Syska Mester
17. september 2010 - 16:13 #3
Update Panel ( render også hele siden, men sortere det fra som er uden for det Update Panel )

Og jeg giver lasse ret, du bruger asp.net forkert, hvis du selv vil ind og rode med ViewState.

mvh
Avatar billede neoman Novice
17. september 2010 - 16:33 #4
I hvilket event tilføjer du din textbox? Kalenderens eventhandler? Det seneste event hvor du dynamisk kan tilføje controls er PageLoad - der skal de tilføjes ved hver postback, for at være synlige i næste ombæring. 

De dynamiske kontrollers tilstand (fx værdien i teksboksen)
bliver automatisk bevaret af systemet i ViewState. Men selve testboksen skal tilføjes ved hver PostBack.
Avatar billede arne_v Ekspert
18. september 2010 - 03:35 #5
Hvis man af en eller anden grund vil gemme noget information med page scope fremfor session eller application scope, så er viewstate vel lige til højrebenet.

Syntaxen er lige ud af landevejen:

ViewState[key] = ditobj;

og

ditobj = (DinType)ViewState[key];

Key er helt valgfri - ligesom med Session og Application.

Og som du har fundet ud af skal man have styr på postback, fordi ellers går det totalt i kage.
Avatar billede mickni33 Nybegynder
16. november 2010 - 09:28 #6
Læg lige nogle svar.
tror lige jeg starter forfra nu når jeg har fået nye "hints" fra jer..
Avatar billede Syska Mester
16. november 2010 - 09:38 #7
svar
Avatar billede arne_v Ekspert
17. november 2010 - 01:04 #8
.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester