IironheadMedlem sedan mars 20011 346 inlägg Hej!
Ponera att jag har en knapp och en räknare
.aspx
<form id="Form1" method="post" runat="server">
<asp:Button id="btnNext" runat="server" Text="Plus 1"></asp:Button>
</form>
Code-Behind(VB):
Dim Cnt As Integer = 1
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
Cnt += 1
Response.Write(Cnt)
End Sub
...och att jag vill att "Cnt" ska räkna +1 varje gång jag klickar på knappen, hur gör jag då?
I detta fall räknas det bara upp 2 och sen stannar det där...
Du dimmar ju om variabeln varje gång du laddar sidan.
Dim Cnt As Integer = 1
GGladhMedlem sedan maj 20012 812 inlägg Du måste behålla värden för knappen mellan de olika sidanropen. Om det endast är mellan olika postbacks på samma sida så kan du använda dig av ViewStaten.
Om du skall hålla värdet mellan olika sidanrop så måste du använda dig av Session/Cookies.
Om det skall vara så att om en användare trycker på knappen så skall det räknas upp globalt för alla användare, så kan du använda dig av Cachen eller ännu bättre göra din variable static, vilket då kommer att göra så att alla besökare får se samma värde. Tänk dock på att du måste göra läsning och skrivning trådsäkert så att du inte får att olika trådar försöker skriva samtidigt, det kommer genererar fel.
- M
IironheadMedlem sedan mars 20011 346 inlägg
Gladh skrev:
Om det endast är mellan olika postbacks på samma sida så kan du använda dig av ViewStaten.
Japp, det kommer att vara på samma sida, hur kan jag använda viewstate för detta?
IironheadMedlem sedan mars 20011 346 inlägg
Nickemannen skrev:
Du dimmar ju om variabeln varje gång du laddar sidan.
Dim Cnt As Integer = 1
Den ligger ju utanför subben, räcker inte det?
ironhead skrev:
Nickemannen skrev:
Du dimmar ju om variabeln varje gång du laddar sidan.
Dim Cnt As Integer = 1
Den ligger ju utanför subben, räcker inte det?
Inte om du inte använder PageBack
Jesper TMedlem sedan nov. 20017 144 inlägg Sub page_Load(obj as object, e as eventargs)
myCounter.text = Viewstate("mycounter")
End sub
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
ViewState("mycounter") +=1
End sub
Så här kanske?
IironheadMedlem sedan mars 20011 346 inlägg
Jesper T skrev:
Sub page_Load(obj as object, e as eventargs)
myCounter.text = Viewstate("mycounter")
End sub
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
ViewState("mycounter") +=1
End sub
Så här kanske?
Det där fick jag inte alls att funka....myCounter visar ingenting alls :-/
IironheadMedlem sedan mars 20011 346 inlägg heh! :r Nu fick jag ovanstående att fungera, vet inte varför det inte funkade sist.
Problemet är bara att när jag klickar på knappen första gången, så är viewstate ingenting, så den räknar inte heller upp med +1, hur kan man göra så att den gör det med detsamma?