Avatar billede magoo20000 Nybegynder
22. oktober 2002 - 18:16 Der er 12 kommentarer og
1 løsning

Session, Arraylist....

Hejsa!

Jeg har følgende problem:

Når en bruger skal oprettes på min (fortstående) web portal, skal denne igennem fem forskellige .aspx-sider for at vælge noget information fra nogle dropdownliste, skrive i nogle tekstfelter osv - altså alt brugerinformationen.

Hvordan lagre jeg midlertidigt alt dette - Jeg har fundet frem til, at en Session selvfølgelig ville være smart, men kan man lagre alt informationen i f.eks. en Arraylist og benytte denne sammen med Sessionen?

Kode udsnit:
(Fra code-behind for den første indtastningsside)
public void HandleSession(){
Session["criteriaSession"] = new ArrayList();
ArrayList al = (ArrayList)Session["criteriaSession"];
al.Insert(0, typeOfCompany_DropDown.SelectedItem.Text);
al.Insert(1, companyForm_DropDown.SelectedItem.Text);
osv.

Når man er nået til den sidste side, skal der klikkes på en knap, hvorefter alt dataen fra Arraylisten skal gemmes i en SQL DB vha ADO.NET..

På forhånd tak!
Avatar billede simon.ulsnes Nybegynder
22. oktober 2002 - 18:37 #1
Ja, det kan man godt, men du skal huske at caste din session-variabel til en ArrayList hver gang du bruger den...

Eks.:
ArrayList criteriaSession = (ArrayList)Session["criteriaSession"];

Du skal regne med, at du ikke kan tilgå session-variablerne direkte når de er specielle typer, som for eksempel ArrayList. Derfor bliver du nødt til at oprette et nyt objekt for hver session-variabel du vil bruge, som i eksemplet ovenfor.

// Simon
// This sentence no verb.
Avatar billede simon.ulsnes Nybegynder
22. oktober 2002 - 18:38 #2
Hov, det havde jeg ikke set du faktisk allerede havde gjort...
Avatar billede magoo20000 Nybegynder
22. oktober 2002 - 18:49 #3
*g* Ja, det er det med skoven for bare træer;-)

Er dette en fornuftig måde at gøre det på - erfaringer på dette område?
Jeg har set et eksempel, hvor man gemmer i databasen, som indtastningerne skrider frem, men er det ikke elendigt rent performancemæssigt?
Skal man angive noget i Global.asax mht. Sessions - Jeg kan se, at der er plads til det?
Avatar billede -psycho- Nybegynder
22. oktober 2002 - 20:24 #4
Du kan os vælge at gemme oplysningerne i en cookie.
Avatar billede magoo20000 Nybegynder
22. oktober 2002 - 20:43 #5
Det kunne jeg, men det er ikke nogen god ide, da brugeren kan have Cookies slået fra i deres browser options.
Avatar billede simon.ulsnes Nybegynder
22. oktober 2002 - 22:12 #6
Du behøver ikke lave skæg med Global.asax...
Avatar billede cms Nybegynder
22. oktober 2002 - 22:41 #7
Er det ikke langt nemmere at lave det med én aspx-side?
Du kan blot lægge det i fire kontroller, hvor du styrer deres Visible-properties...
Avatar billede madrich Nybegynder
23. oktober 2002 - 12:20 #8
evt. kan du jo smide informationerne i skjulte formfelter, på den måde undgår du problemer med skalering, med mindre at .net understøtter sessions på tværs af servere : )
Avatar billede cms Nybegynder
23. oktober 2002 - 16:51 #9
Det gør det - du kan jo blot benytte en database til at holde på dine sessions
Avatar billede magoo20000 Nybegynder
24. oktober 2002 - 12:00 #10
Jeg har muligvis senere bruge for sessions, der skal holdes styp på, på flere servere (load balancing).
Gemmer man state i en sql db eller er der nogen, der har nogle rare links med lidt info. omkring det ;) ?
Avatar billede magoo20000 Nybegynder
19. februar 2003 - 18:34 #11
SVAR!
Avatar billede magoo20000 Nybegynder
19. februar 2003 - 18:34 #12
!
Avatar billede burningice Nybegynder
19. februar 2003 - 21:30 #13
lidt af et tilfælde jeg dumpede ind her, men du kan læse lidt om at gemme session i db her

http://aspalliance.com/wisemonk/view.aspx?id=AN061702
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