我想实现点击一次按钮,变量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>

解决方案 »

  1.   

    把定义变量的代码放进page_load
    里面
      

  2.   

    page_load
    里面再用ispostback
    里面定义看看
      

  3.   

    放在 page_load 里不能用public;自定义函数取不到变量。
      

  4.   

    那你就这样abc+=abc;
    把ABC改成这个。
      

  5.   

    public static int abc;
    你每次单击后,页面回发,abc每次都是新初始化的,加上static即可。
      

  6.   


    这个可以,为什么???那假如是Session["abc"],应该如何做?多谢!!!
      

  7.   

    static public int abcweb和form不同,刷过就什么都没了
      

  8.   

    public partial class register : System.Web.UI.Page
    {
        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();
        }
    }
      

  9.   

    Session表示某个用户单击该按钮次数。Application表示所有用户单击该按钮次数。    protected void Button1_Click(object sender, EventArgs e)
        {
            if (Application["abc"] == null)
            {
                Application["abc"] = 1;
            }
            int count = Convert.ToInt32(Application["abc"]);
            count = count + 1;
            Application["abc"] = count;
            Label1.Text = count.ToString();
        }
      

  10.   

    static 是报存服务器上的,你的页面没刷新下。本地变量就没值了。
      

  11.   

    这样确实会出现问题,把abc记录到Session里就好了。
    不会丢失的。
      

  12.   


    我最同意這個,绝对可以,把abc设置成类的静态成员就可以了。当然有人提session也是很正确的,因为很多网站就是这样的,因为静态的不安全嘛。
      

  13.   

    这个很简单的问题,不需要用session(如果是服务器集群的话,用session会有问题)
    Label1.Text显示的就是变量的值,再次点击将这个显示的值加1后再显示出来不就是楼主要的结果吗?
    楼主可以运行一下试试呀。
      

  14.   

    推荐:
        用public定义对象的成员变量应该不行吧……
        尝试在在public后面再加个static转变成类的成员变量……
        
      

  15.   

    为什么不用属性呢?public partial class register : System.Web.UI.Page
    {
        public int abc
        {
            get
            {
                return int.Parse(Label1.Text);
            }
            set
            {
                Label1.Text = value.ToString();
            }
        }    protected void ImageButton_add_Click(object sender, ImageClickEventArgs e)
        {
            abc++;
        }
    }就这么简单
      

  16.   

    前台的<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    Text要编程"0"或其他初始值。