4 messaggi dal 17 agosto 2012
Ciao, da poco che sono alle prese con la programmazione dot.net. In particolare sto utilizzando i web forms ed ho un problema con gli eventi.
Vorrei realizzare uno stupido contatore, ogni volta che clicco sul button mi incrementa il contatore ma funziona sola la prima volta...perche'?
Di seguito il codice che è semplicissimo
Grazie in anticipo
namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
int c;

protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
c = 1;
}
else { c++; }
Label1.Text = " " + c;

}

protected void Button1_Click(object sender, EventArgs e)
{
c = c + 1;
Button1.Text = "c: " + c;
}
}
175 messaggi dal 02 gennaio 2012
ciao gio.gio

ad ogni click su un bottone viene eseguito un postback,
le variabili dichiarate nella pagina nell'esempio
int c;
sono riallocate e quindi il vecchio valore e' perso.

possibili soluzioni
1) salva il valore in un campo nascosto

2) non usare variabili, ti posto la soluzione, anche se in VB (ho tolto quasi tutto)

Public Class WebForm1
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Label1.Text = Val(Label1.Text) + 1
End Sub
End Class

3) usa un modulo e dichiara le variabili Public

inoltre non ho capito la tua istruzione Button1.Text = "c: " + c;
perche' la assegni a Button1 e non Label1 ?

bye ghg
Modificato da ghg il 18 agosto 2012 21.31 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.