22. oktober 2002 - 18:16Der 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..
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.
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?
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 : )
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 ;) ?
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.