Hej! Jag skulle behöva lite input hur jag ska mellanlagra data vid en registrering. registreringen kommer att delas upp i flera steg och om då användaren avbryter i låt säga steg 2 så vill jag såklart inte ha en halvfärdig registrering sparad i databasen. Visst kan man ta bort ofärdiga registreringar i efterhand, men jag skulle hellre vilja ha ett objekt av något slag som håller informationen till sista steget där all skickas upp i db på en gång.
Det vanligaste sättet, antar jag, är att skapa hela registreringsformuläret med forms på en och samma sida. Beroende på vilken del av formuläret man är på väljer man bara att visa vissa delar av denna m.h.a. t.ex. panels.visible.
Angående att skriva in i databasen efter varje halvfärdigt steg låter lite, ovanligt. Låt all info ligga kvar i forms tills registreringen är komplett. Därefter lägger du in allt eller inget istället.
Session objektet låter som något som du är ute efter...
En fråga från en som inte är i industrin än till en som är. Använder man hellre sessions istället för att styra forms-delar med visible? Specifikt för asp.net såklart.
Jag har klämt lite på Wizard-kontrollen och gillade den inte.. dels för att den (vad jag vet) renderar en massa tabeller samt kändes omständig för att skapa små wizards. Den kanske passar bättre till stora wizards med många sidor/delar.
Viewstaten borde väl räcka för att lagra mellanpostningarna.
Det beror på hur man bygger upp det. Du har två aspekter att ta hänsyn till. Om du lägger fomulären över flera sidor så kan du inte använda viewstaten.... Sedan är det så att viewstaten skickas fram och tillbaka till klienten, så om du har mycket data som skall skrivas in, så är viewstaten inte den bästa lösningen.
Sessions objektet är inte overkill, då det är väldigt enkelt att använda och ta relativt lite prestanda att använda...
usch nej.. dels så kan du få problem med låsningar i databasen, dels så måste man hålla samma koppling till databasen öppen så långe som inmatningen kräver det, vilket betyder att man drastiskt minskar skalbarheten för sin applikation...
Det kommer en uppdatering som gör att de flesta kontroller kan sköta layoyten via css istället för tabeller inom kort, kör man server.transfer får man väll tillgång till viewstaten?
kör man server.transfer får man väll tillgång till viewstaten?
nu har jag inte forskat närmare i viewstaten men den måste ju para ihop datan med en kontrol, och det kräver så fall att samma antal kontroller finns på sidan som du server.transfer till, samt att id:et borde vara samma som de från första sidan.
Sedan om jag förstått viewstaten korrekt, så skall den inte överföras mellan 2 sidor, så även om du gör en server.transfer så bör du inte få tillgång till den, det är dock inget som jag kontrollerat, bara läst att en viewstate endast är tillgänglig inom samma sida.
Här är några alternativ. Om du skall köra på samma sida så skulle nog MultiView kontrollen passa bäst. Då du vill ha full kontroll över htmlen och datan sparas mellan de olika stegen i viewstate. Om du skall köra över flera sidor är Cross-page posting det du skall välja.
Gladh, jag var nog trött när jag skrev det där. Kör du på 1.1 istället för 2 kan du ju deklarera en Reference Page (via server.transfer) om du inte har tillgång till Cross-page posting
Tack för alla svar! Men om jag nu ska använda mig av sessions... vad ska jag stoppa i sessionsobjektet? Antar att man inte ska spara undan värdet i varje inputfält i en egen session? Är det smart att exempelvis ha en datatable i sessionsobjektet och sedan på nåt sätt smacka in allt från datatablen till dbn i sista steget?
Skall du använd dig av Session objektet så rekomenderar jag dig att du skapar olika objekt som matchar de input data som du är uteefter och spara ner dessa i sessionobjektet efterhand som de skapas, på sista sida när allt skall sparas ner i databasen så plockar du ut dessa objekt och spara ner i databasen, här skall du nu använda dig av transaktioner som garanterar att allt eller inget sparas i databasen.
- M
261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25