webForumDet fria alternativet

Spara värden mellan postbacks

.NET

2 svar · 205 visningar · startad av fredrik

Medlem sedan dec. 19991 072 inlägg
Frågan#1

Jag har en bokningsdialog som består av ett antal steg med några olika postbacks/steg.

De olika värderna för tex. sök-kriterier sparar jag en en "Criteria"-Structure som jag sedan sparar ner i en ViewState.

De olika valen som görs (Tex. i steg 2 väljer man stad, i steg 3 hotell, steg 4 rum osv) sparar jag också i dels viewState, men jag använder även de databundna kontrollerna för att återhämta vald data. Exempel på detta kan vara att jag har data i en Repeater, sen kan jag hämta upp data på radnivå från en "LinkButton" tex. för att få ut en viss RepeaterItem och andra kontroller den.

Frågan är nu...hur pass bra/dåligt är detta tycker ni?

Självklart finns det flera andra sätt att göra det på. Tex:

1. Spara all data i databasen mellan varje val och sen hämta upp/skriva tillbaka allt eftersom

2. Spara ALLT i klasser som läggs i ViewState.

3. Spara ALLT i klasser som läggs i Session.

4. Serializera till XML och spara i ViewState/Session.

Ja, det finns ju mängder med sätt.

Jag har i nuläget inte upplevt några problem med mitt förfarande, utan vill mest ha andras synvinklar och inputs på det!

Tack!

Medlem sedan apr. 2004778 inlägg
#2

Ett sätt att göra det är att lägga varje steg i en Panel. När du går till nästa steg släcker du den Panel du var på och tänder den med nästa steg. När du kommer till sista steget så plockar du alla värden och stoppar dem i databasen.

Fördelen med detta är att du slipper onödiga databasanrop och du slipper skapa klassobjekt flera gånger.

Medlem sedan dec. 19991 072 inlägg
#3

jag använder även de databundna kontrollerna för att återhämta vald data

Japp, mina databundna kontroller ligger just i olika paneler för de olika stegen...så det är bla. så jag gör nu...

255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)