Jag vill skapa objekt på en sida som fortsätter "leva" även efter postback. Applikationen nedan skall altså räkna upp efter "reload" eller postback. Någon som har ett bra förslag hur man gör detta på ett snyggt sätt. Det skall inte vara globalt för alla användare utan varje användare skall ha sin egen räknare. Benny, Nej jag vill inte spara ner det i databasen. Att det var en räknare var mer för att göra ett lätt exempel. Det jag vill åstakomma är att kunna spara undan data lokalt hos klienten mer för den specifika sessionen. Ok. Du har du problem. För det går typ inte. Dock kan du ju spara data i viewstaten så har du den på klinetsidan eller i hidden fält. Men du måste alltid ange kod för att hämta den, samt skriva in den. Inte konstigt att man inte hittar hur man skall göra när det inte går :) Om du ska spara data på KLIENTEN, så får du använda dig av cookies eller skapa en ActiveX kontroll. Om du vill ha kvar data på servern för varje klient, så kan du tex använda Sessions. I en Sessions kan du lagra objekt. <code> "Kanske skall skriva något som 'Serializar' ner och upp objekt i stället för att skicka info fram och tillbaks till server. Skall man spara ner de som en cookie då eller?"Ett objekts liv
<code>
Public Class applicationMain
Inherits System.Web.UI.Page
Private cK As kalle
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Page.IsPostBack Then
cK.intK = cK.intK + 1
Label2.Text = "Page.IsPostBack"
Else
cK = New kalle
Label2.Text = "NOT Page.IsPostBack"
End If
Label1.Text = cK.intK
End Sub
Private Class kalle
Public intK As Integer = 1
End Class
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
End Sub
End Class
</code>Sv: Ett objekts liv
Du kan bygga ett objekt baserat på singelton pattern. Detta gör att objektet blir levande även efter postback, dock blir det globalt för alla användare. Så du kan även använda State patterns m.m.
Man kan även serilizera objektet till binary och deserilizera upp den igen. Du kan ungefär se det som att du sparar ner en bit av minnet på hårdisken och läser in det igen.
Dock låter det mer som du vill spara ner data i databasen, då räknaren blir unik/användare.
Så du bheöver inte låte den leva. När man första gången går in registrerar du bara detta sedan läser du in det nya värdet och presenterar det.
Sedan har du ju Sessions som du kan använda dig av, där kan du exempelvis spara undan objekt.
Mvh JohanSv: Ett objekts liv
Jag vill inte behöva någon särskild kod för att spara undan data när sidan laddas om. Sv: Ett objekts liv
Mvh JohanSv: Ett objekts liv
Jag hoppades bara att det gick att bygga på liknande sätt som man bygger en fet-klient.
Tidigare har jag löst problemet med att ha gömda kontroller på formet men det är ju inte något särskilt snyggt sätt att göra program på.
Kanske skall skriva något som 'Serializar' ner och upp objekt i stället för att skicka info fram och tillbaks till server. Skall man spara ner de som en cookie då eller?Sv: Ett objekts liv
/Fredrik Normén NSQUARED2
http://fredrik.nsquared2.comSv: Ett objekts liv
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Page.IsPostBack Then
CType(Session("kalle"), kalle).intK = CType(Session("kalle"), kalle).intK + 1
Label2.Text = "Page.IsPostBack"
Else
Session("kalle") = New kalle
Label2.Text = "NOT Page.IsPostBack"
End If
Label1.Text = CType(Session("kalle"), kalle).intK
End Sub
Private Class kalle
Public intK As Integer = 1
End Class
</code>Sv: Ett objekts liv
Nja, då kan du få en väldigt stor cookie, to m så stor att den inte går att använda.
Jag förstår inte problemet med att låta server ha objektet. Du har ju en session så du når det så länge användaren har sin klient öppen, om han/hon stänger den så kan du ändå komma åt objektet om du sparat det i en db eller som binfil på hårdsiken genom dess användar id eller nått.
Webben är statelsss så du måste själv hantera staten på det sätt som passar dina krav.
Mvh Johan