我想实现点击一次按钮,变量abc加1;可是现在只有第一次可以实现,之后怎么点都不变。请问应该如何修改代码,谢谢!后台:public partial class register : System.Web.UI.Page
{
public int abc;
protected void ImageButton_add_Click(object sender, ImageClickEventArgs e)
{
abc++;
Label1.Text = abc.ToString() ;
}
}
前台:<div><asp:ImageButton ID="ImageButton_add" src="images/add.gif" runat="server" onclick="ImageButton_add_Click" /></div>
<div><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></div>
{
public int abc;
protected void ImageButton_add_Click(object sender, ImageClickEventArgs e)
{
abc++;
Label1.Text = abc.ToString() ;
}
}
前台:<div><asp:ImageButton ID="ImageButton_add" src="images/add.gif" runat="server" onclick="ImageButton_add_Click" /></div>
<div><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></div>
里面
里面再用ispostback
里面定义看看
把ABC改成这个。
你每次单击后,页面回发,abc每次都是新初始化的,加上static即可。
这个可以,为什么???那假如是Session["abc"],应该如何做?多谢!!!
{
protected void ImageButton_add_Click(object sender, ImageClickEventArgs e)
{
int result = 0;
if (!string.IsNullOrEmpty(Label1.Text))
{
result = int.Parse(Label1.Text.trim());
Label1.Text = (result + 1).ToString();
}
else
Label1.Text = result.ToString();
}
}
{
if (Application["abc"] == null)
{
Application["abc"] = 1;
}
int count = Convert.ToInt32(Application["abc"]);
count = count + 1;
Application["abc"] = count;
Label1.Text = count.ToString();
}
不会丢失的。
我最同意這個,绝对可以,把abc设置成类的静态成员就可以了。当然有人提session也是很正确的,因为很多网站就是这样的,因为静态的不安全嘛。
Label1.Text显示的就是变量的值,再次点击将这个显示的值加1后再显示出来不就是楼主要的结果吗?
楼主可以运行一下试试呀。
用public定义对象的成员变量应该不行吧……
尝试在在public后面再加个static转变成类的成员变量……
{
public int abc
{
get
{
return int.Parse(Label1.Text);
}
set
{
Label1.Text = value.ToString();
}
} protected void ImageButton_add_Click(object sender, ImageClickEventArgs e)
{
abc++;
}
}就这么简单
Text要编程"0"或其他初始值。