I want to increase values on timer tick event but it is not increasing don\'t know what I am forgetting it is showing only 1
.
Check whether the form is posted back and then assign values. Check IsPostBack
private int i;
protected void Timer1_Tick(object sender, EventArgs e)
{
if (!IsPostBack)
{
i = 0;
}
else
{
i = Int32.Parse(Label3.Text);
i++;
}
Label3.Text = i.ToString();
}
Generally speaking it is not a good practice to store values inside of views (such as asp.net page). It could be overwritten each time the request is sent.
You could store your data elsewhere:
public static class StaticDataStorage
{
public static int Counter = 0;
}
And use it:
protected void Timer1_Tick(object sender, EventArgs e)
{
StaticDataStorage.Counter++;
Label3.Text = StaticDataStorage.Counter.ToString();
}
You can use ViewState to store and then read the value of i
again.
int i = 0;
protected void Timer1_Tick(object sender, EventArgs e)
{
//check if the viewstate with the value exists
if (ViewState["timerValue"] != null)
{
//cast the viewstate back to an int
i = (int)ViewState["timerValue"];
}
i++;
Label3.Text = i.ToString();
//store the value in the viewstate
ViewState["timerValue"] = i;
}