webForumDet fria alternativet

Skicka med objekt till annan sida....

.NET

8 svar · 283 visningar · startad av Ciliax

Medlem sedan jan. 2004170 inlägg
Frågan#1

Hallå....

Jag har ytterligare ett litet spörsmål... .)

Jag har en aspx sida som innehåller en listbox med lite saker i sig. I Codebehind filen på en viss knapptryckning vill jag att sidan skall öppna en ny sida... detta är inga problem och det gör jag med: Response.Redirect("kassa.aspx");

Men jag vill ha med objektet som är en listbox till andra sidan....
Helst vill jag kunna skicka med det i Session.... Går detta?
Typ: Session["lista"]=Listbox1; och om det går... Hur tar jag empot detta objekt på andra sidan?

Tacksam för svar...

/Magnus

Medlem sedan juni 20019 024 inlägg
#2

Varför inte skicka med via querystringen i stället? Att lagra en session bara för att det är "enkelt" är ingen vidare god idé.

Ta emot värdet i listboxen (Listbox1.SelectedValue i ASP.NET 1.1) och sätt den som querystring:

Response.Redirect("kassa.aspx?lista=" & Listbox1.SelectedValue)

Om du nödvändigtvis måste använda session gör du på liknande vis och hämtar sedan ur session via Värde =Session["lista"].

Medlem sedan jan. 2004170 inlägg
#3

Tack för svaret!

Response.Redirect("kassa.aspx?lista=" & Listbox1.SelectedValue) tar väl bara med de värden som är valda... Jag skulle vilja ha tillgång till hela objektet eller en kopa på det med alla dess värden....

Det är detta som är av vikt för mig... att kunna skicka med hela objekt mellan sidorna.... Går det?

Medlem sedan juni 20019 024 inlägg
#4

Det går har jag för mig (session["bla"] = listbox borde fungera utmärkt), men ska undvikas. Varför vill du göra det? Det strider mot allt vad logik heter.

Medlem sedan juli 20011 304 inlägg
#5

Jag skulle kopiera in allt i din listbox i en ArrayList, lägga in ArrayList:en i en sessionsvariabel och sätta den som datakälla på en listbox på din nya sida.

Fast å andra sidan förstår jag inte riktigt varför jag skulle vilja göra så... Varför vill du ha en kopia av listboxen? Är det för att det är jobbigt att fylla på den så löses ju det genom att flytta ut den logiken och sedan återanvända.
Är det för att veta vad som är valt så vet du ju redan hur man gör :)

Medlem sedan nov. 2003569 inlägg
#6

Eller så är det så att Ciliax är en gammal ASP:are. ;)

Man måste tänka helt nytt när man börjar med asp.net

Medlem sedan jan. 2004170 inlägg
#7

Tackar för alla förslag....
Jag fick lite hjärnsläpp på vissa punkter ser jag nu....

Naturligtvis så vill jag inte skicka listboxen i sig utan en arrayList som innehåller all den info som listboxen har....

Men allt har löst sig så tack! :)

Har inte håll på med ASP tidigare Nöff! :) Gammal Java räv dock! :)

Medlem sedan aug. 20003 575 inlägg
#8

Men kan man inte byta sida och skicka vidare objektet på CodeBehind nivå ?

Medlem sedan maj 20012 812 inlägg
#9

Du kan ofta serialisera ner ett object till en textsträng och skicka med den i dun URL. Det finns dock problem med det, alla objekt kan inte serialiseras, samt att du URL inte får innehålla hur många tecken som helst, samt att antalet skiljer mellan olika läsare!!!

Så det bästa är att lägga det i Session/egen cache och sedan hämta upp det på nästa sida.

- magnus

263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)