Avatar billede anhansen Nybegynder
15. december 2003 - 09:43 Der er 14 kommentarer og
1 løsning

Bevare objekt ved postback

Hej..

Jeg har et serverside objekt i min aspx.cs klasse.
Objektet er en arraylist, som jeg gerne vil beholde.
Men når jeg trykker på min button, som skal gøre ting ved dette array, får jeg at vide der er en null exception.

Kan det passe at objektet dør ved postback, og hvordan fortæller jeg at det ikke skal ske.. Det skal bare leve på serverside, og være der igen, når jeg postback'er

/Anders
Avatar billede burningice Nybegynder
15. december 2003 - 10:09 #1
Du kan gemme det i en session
Avatar billede anhansen Nybegynder
15. december 2003 - 10:15 #2
ja... men kan det ikke gøre det pr. default... Det er jo planen det skal virke som en applikation, og når jeg trykker på en knap i min applikation forventer jeg lidt at mine objekter der var oprettet lige inden jeg trykker på knappen er der stadig... men sådan er det åbenbart ikke... ;-)
Avatar billede mufoxe Nybegynder
15. december 2003 - 10:19 #3
Hvis du laver din objekter implementere ISerializable,  kan du gemme dem i ViewState. F.eks. i C# ViewState["MyObject"] = myObject;

eller i VB

ViewState("MyObject") = myObject

For at kunne gemme i viewstate, skal objektet kunne repræsenteres som en streng. Jeg gør oftet det, at jeg gemmer et ID på objektet og henter det ud af mit datastore efter postback.
Avatar billede anhansen Nybegynder
15. december 2003 - 10:27 #4
Det er jo et "standard" objekt.. Altså arraylist der er tale om..

Ang. det med datastore.. Hvad går det ud på.. Er det der de enkelte objekter er gemt?
Avatar billede mufoxe Nybegynder
15. december 2003 - 10:29 #5
Ja. Jeg havde vist ikke læst dit spm godt nok :) Havde ikke set ArrayList'en. Hvis du vil gøre det på den måde, må det blive med session, som cyberfessor skriver.
Avatar billede anhansen Nybegynder
15. december 2003 - 10:34 #6
OK... Men jeg kan sikkert få brug for det du skrev en anden gang... :-)
Avatar billede anhansen Nybegynder
15. december 2003 - 10:35 #7
Jeg har også brugt session... Men jeg synes stadig det er fjollet den ikke selv gør det.. Når nu de gør så meget ud af at sige at det objektorienterede er kommet på "nettet".. :-)
Så burde de lave en automatisk viewstate med de objekter man bruger på sin side..

Men det virker fint med session, så cyberfessor... Smid et svar.. :-)
Avatar billede anhansen Nybegynder
15. december 2003 - 10:35 #8
ups... forkert tryk...
Avatar billede anhansen Nybegynder
15. december 2003 - 10:35 #9
:-)
Avatar billede anhansen Nybegynder
15. december 2003 - 10:36 #10
der kommer et sprgsml "point til cyberfessor... "
Avatar billede mufoxe Nybegynder
15. december 2003 - 10:37 #11
Nej, det er bedst som det virker nu. Alt der gemmes i ViewState sendes til klienten, hvilket dermed øger båndbreddeforbruget. Session  kan man ikke altid regne med, idet den afhænger af cookies (der er dog mulighed for at gå over til at gemme sessionid i querystring).
Avatar billede anhansen Nybegynder
15. december 2003 - 10:40 #12
ja... ok... Men det vil så sige.. at når jeg gerne vil gemme mit SERVERSIDE objekt.. og brugeren ikke har cookies aktiveret.. så er jeg lidt fucked...
Men sådan er det jo... Men der kunne jo godt sendes et id med som blev sendt tilbage til serveren og genkendte klienten, uden at sende dataen til klienten...

Det burde vel ikke være nødvendigt med al data.. Der er en del der kun bruges på serveren...
Avatar billede burningice Nybegynder
15. december 2003 - 10:40 #13
anhansen>> tja.. jeg ved ikke om det er mærkelig eller ej. Du kan evt. læse lidt om det state-less miljø som websider nu engang er. Efter at webserveren har processeret et webrequest glemmer den alt om det. Hvis serveren automatisk skulle holde på alle de objecter der bliver brugt, så vil der ikke gå mere end 4 sekunder før den går i knæ på grund af manglende hukommelse.
Avatar billede burningice Nybegynder
15. december 2003 - 10:41 #14
anhansen>> du kan godt aktivere cookieless sessionmanagement... så vil id'et automatisk sat på din URL
Avatar billede anhansen Nybegynder
15. december 2003 - 10:45 #15
nej.. det er også rigtigt... Det er nok meget fornuftigt når alt kommer til alt... Og der er trods alt mulighed for at gemme noget hvis man gerne vil...

Har du set sprsmlet med point til dig?
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