viewstate存值问题(http无状态)
前台代码:
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()+ "次" ; } |
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。