首先我定义个成员变量operNum,并在Page_Load里赋初值0
public partial class TVGuide : System.Web.UI.Page
{
    private int operNum;
    protected void Page_Load(object sender, EventArgs e)
    {
        operNum = 0;
       
     }
     。

然后我在页面上加一个botton,在响应函数中:
 protected void Button1_Click(object sender, EventArgs e) //修改
    {
       operNum = 1;
     }
最后。。我在另一个函数中调用Response.write(operNum);输出居然还是0,请问为什么啊!?

解决方案 »

  1.   

    1.你这个webform每次load的时候都会令operNum=0;
    2.Response.Write(operNum.ToString());
      

  2.   

    谢谢!可是:
    1.每次按钮按下的时候都会reload吗,能否设置?
    2.加了toString()还是老样子。本来我是想,通过不同按钮对openNum赋值,最后一个按钮switch case 判断openNum值做不同操作,现在怎么都是0,唉。。哭
      

  3.   

     public string s1 = "";
        protected void Page_Load(object sender, EventArgs e)
        {    }
        public void sss(ref string s2)
        {
            s2 = "nihao";
        }
        protected void Button2_Click(object sender, EventArgs e)
        {        sss(ref s1);
            Response.Write(s1);
        }
    看这样能解决你的问题吗
      

  4.   

     
    protected void Page_Load(object sender, EventArgs e)
    {
    if(!Ispostback)
    {
     operNum = 0;
    }
    }
      

  5.   

    if (!IsPostBack)   必须的  
      

  6.   

    (1)可以把你的那个operNum 设置为static
    (2)或者你那个可以不用变量,而是用一个hiddenfield来记录,或者是viewstate
      

  7.   

    当然。要不为什么要求每一个asp.net程序员都要知道asp.net页面生命周期呢?!它与winform的不同就体现在这里。
      

  8.   

    建议研究一下asp.net的生命周期!!
      

  9.   

    哎,http协议的无状态就在这里
      

  10.   

    static int num;
    if(!postback)
    {
     num=0;
    }