我目前正在尝试学习如何使用会话状态,但我遇到了一个我无法弄清楚的问题。我想要做的是有一个按钮,当我点击它,它会将我的变量的值增加1,但我的问题是,我点击它的前三次我的int不增加,但在第四次点击它按预期工作并增加。
这是我的代码。
private static int Clicks = 1;
protected void Page_Load(object sender, EventArgs e)
{
// First page load?
if (!IsPostBack)
{
Session["Clicks"] = Clicks; //Clicks
}
Label1.Text = Convert.ToString(Session["Clicks"]);
}
protected void btnCounter_Click(object sender, EventArgs e)
{
//UserClick.BtnClicks++;
Session["Clicks"] = Clicks++;
}
答案 0 :(得分:2)
您应该查看ASP.NET Page Lifecycle(请参阅回发事件处理)。
btnCounter
点击事件在Page_Load
事件发生后才会被触发。如果您更新Label
活动中的Click
,则可能会获得更好的结果。
protected void btnCounter_Click(object sender, EventArgs e)
{
Session["Clicks"] = Clicks++;
Label1.Text = Session["Clicks"].ToString();
}
答案 1 :(得分:0)
另外,由于您很难将该变量设置为' 1',每次单击该按钮时,它都将重置为1.您可能希望将其替换为getter和setter,以检查会话变量是否存在如果是,则将值设置为该值。