单击c#asp.net按钮上的增量int
我试图在每次单击按钮时递增整数,我使用viewstate为我的int赋值,但它不起作用。这是我的代码示例单击c#asp.net按钮上的增量int,c#,asp.net,C#,Asp.net,我试图在每次单击按钮时递增整数,我使用viewstate为我的int赋值,但它不起作用。这是我的代码示例 public int par { get { if (ViewState["par"] == null) { ViewState["par"] = 2; } return (int)ViewState["par"]; } set { ViewSt
public int par
{
get
{
if (ViewState["par"] == null)
{
ViewState["par"] = 2;
}
return (int)ViewState["par"];
}
set
{
ViewState["par"] = value;
}
}
和按钮单击事件:
protected void LoadMore_Click(object sender, EventArgs e)
{
try
{
this.par = this.par + 1;
loadNews(Convert.ToInt32(this.par));
}
catch (Exception ex)
{
Response.Write(ex);
}
}
问题是,第一次单击时,数字会增加1,但在下一次单击时,什么也不会发生
int number= 0;
protected void btnIncrement_Click(object sender, EventArgs e)
{
number++;
ViewState["number"] = Convert.ToInt32(ViewState["number"]) + number;
lblShow.Text = ViewState["number"].ToString();
}
我想这是可行的。“不可行”是不够的信息。很好,问题是什么?您的应用程序是否启用了viewstate?在按钮中执行其他不依赖于视图状态的操作,例如只在响应中写入一些文字。我的猜测是,您没有正确创建按钮或添加事件处理程序,因此整个单击处理程序没有运行。这意味着,如果您处于用户控件中,则在页面级别或用户控件级别未启用视图状态,或者将页面加载的值设置为null或2。这与OPs代码有何区别,除此之外,他的代码将视图状态访问权包装在属性中(这比我认为的要好)?就这点而言,类级字段是编写
+1的奇怪方式
。这总是返回1而不是增量。我认为唯一应该增量的是单击
事件?@JPHellemons这个问题是在Asp.Net的上下文中提出的。本地类字段不会在单击事件中保持不变。
private int number = 0;
public int par
{
get
{
return number;
}
set
{
number = value;
}
}
protected void LoadMore_Click(object sender, EventArgs e)
{
number++;
lblShow.Text = par.ToString();
try
{
loadNews(par);
}
catch(Exception ex)
{
lblShow.Text += ex.Message;
}
}