日期:2014-05-17  浏览次数:20423 次

点按钮就刷新页面怎么回事啊
HTML code

<asp:Button ID="addmore" runat="server" Text="加" onclick="addmore_Click" />


C# code

int fileID = 2;
        protected void addmore_Click(object sender, EventArgs e)
        {
           fileID++;
        }


怎么老显示2啊,如何显示3啊

------解决方案--------------------
public int fileID
{
get { return (ViewState["flid"] == null) ? 2 : Convert.ToInt32(ViewState["flid"].ToString()); }
set { ViewState["flid"] = value; }
}
protected void addmore_Click(object sender, EventArgs e)
{
fileID++;
}


用viewstate来定义变量就可以保存状态了,因为按钮点击后页面回发,导致你上面代码中的fileID被重新赋值。
------解决方案--------------------
asp.net的变量是没有缓存的(不像Winform有一个地址来缓存),页面回传后就重新读取初始值了。保存变量的状态,可以用WiewState,Session,Cache,Cookie,Application以及静态变量(Static修饰)等来保存,看你这个变量的使用范围。
------解决方案--------------------
点击按钮发生回传事件 fileID 初始值始终是2 . 
int fileID = 2;
protected void addmore_Click(object sender, EventArgs e)
{
if (ViewState["FileID"] != null) 
{
fileID =Convert.ToInt32( ViewState["FileID"].ToString());

fileID++;
ViewState["FileID"] = fileID.ToString();

}