前台代码:
|
1
2
3
4
|
<!--http协议无状态,这个是可以控制点击,看后台呦--> <asp:Button ID="Button3" runat="server" Text="单击" onclick="Button3_Click"/> <br /> <asp:Label ID="Label4" runat="server"></asp:Label> |
后台代码:
|
1
2
3
4
5
6
7
8
|
private int i = 0; //下面的方法不管单击几次按钮,都只有显示一次。(因为viewstate不能存值) protected void Button3_Click(object sender, EventArgs e) { i++; Label4.Text = i.ToString(); } |
出现问题:
不管点击多少次按钮,只会显示一次
解决方案:
把值存在viewstate中。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack){ //一般完成初始化页面工作,第一次访问时是false。此后的属性都为true i = 0;//将变量的值存在viewstate中。可以避免发生值不能被保存的现象 ViewState["i"] = i;//赋值给viewstate初始值 } else { //开始回发请求 //一般在这里开始完成对web应用程序的恢复和处理工作 i = (int)ViewState["i"];//从viewstate里取值给i } } private int i = 0; protected void Button3_Click(object sender, EventArgs e) { i++; ViewState["i"] = i; Label4.Text = "您单击了"+i.ToString()+"次"; } |