问题描述
我建立的asp.net工程,在前台设置一按钮button:<asp:ButtonID="test_button"runat="server"Text="test"onclick="test_click"/>和一个用于显示数据的textbox:<asp:TextBoxID="TextBox1"runat="server"Height="73px"Width="280px"ontextchanged="TextBox1_TextChanged"></asp:TextBox>在后台用C#编写了如下代码:publicpartialclassWebForm1:System.Web.UI.Page{inti=0;protectedvoidtest_click(objectsender,EventArgse){i++;TextBox1.Text=i.ToString();}}可是每次点击test按钮textbox中的内容都是1,是什么原因呢?菜鸟求指教
解决方案
解决方案二:
按钮点击时候有回发,相当于重新打开了一个页面,即使是公共变量也不会保存值,如果把i的值保存在label中,就可以解决这个问题。
解决方案三:
你每次执行时i值为0i++肯定=1
解决方案四:
引用1楼的回复:
按钮点击时候有回发,相当于重新打开了一个页面,即使是公共变量也不会保存值,如果把i的值保存在label中,就可以解决这个问题。
为什么textbox不行,label就行呢?
解决方案五:
引用3楼的回复:
引用1楼的回复:按钮点击时候有回发,相当于重新打开了一个页面,即使是公共变量也不会保存值,如果把i的值保存在label中,就可以解决这个问题。为什么textbox不行,label就行呢?
不是textbox不行,是因为你的值是从变量里面取的,而你的变量随着你的点击刷新了页面,变量的值也随之初始化了...
解决方案六:
inti=0;=>privateinti{get{intval=0;returnint.TryParse(ViewState["val"],outval);}}--------------------------protectedvoidtest_click(objectsender,EventArgse){i++;TextBox1.Text=i.ToString();}=>protectedvoidtest_click(objectsender,EventArgse){i++;ViewState["val"]=i;TextBox1.Text=i.ToString();}----------------------------------
解决方案七:
不好意思写错了应该这样returnint.TryParse(ViewState["val"],outval);=>int.TryParse(ViewState["val"],outval);returnval;
解决方案八:
页面刷新了。。。。你的方法每次点击。。都刷新了页面。。i只能是1、、、这样的功能用脚本做简单。。