public class ThePage : System.Web.UI.Page
{
   private static int TheValue = 0; // 这里赋初值,如果你要外面也可以访问,改成public
   ...//其他的代码不写了
}在页面里面定义一个静态变量

解决方案 »

  1.   

    或者定义一个变量
    public class ThePage : System.Web.UI.Page
    {
       private int TheValue
       {   
          get{
            object v = ViewState["TheValue"];
            return v==null?0:(int)v;
          }
          set{ 
             ViewState["TheValue"] = value; 
          }
       }   private void Page_Load( object sender,EventArgs e )
       {
           if( !IsPostBack )
           {
               TheValue = SomeValue; // 赋初值
           }
       }
    }
      

  2.   

    同一页用什么Session,用ViewState就好了
      

  3.   

    把变量声明放在方法外面.在page_load()中初始化,在需要的方法中对其赋值.
      

  4.   

    要在postback后仍保存该值,用viewstate[].在页面设置ViewState["变量"],下一页就可以使用.
      

  5.   

    相信我,用ViewState是最方便的,如果是全局的,当然是用静态的变量
      

  6.   

    用static的各位,那不是静态变量吗?我一开始想过,但是,总感觉不太劲啊。我试试。
    qz4365(冷风清扬) ,你说的放在page_load()中初始化,是要放到!(ispostback)的块内吗?
    谢谢
      

  7.   

    public class ThePage : System.Web.UI.Page
    {
       private int TheValue
       {   
          get{
            object v = ViewState["TheValue"];
            return v==null?0:(int)v;
          }
          set{ 
             ViewState["TheValue"] = value; 
          }
       }   private void Page_Load( object sender,EventArgs e )
       {
           if( !IsPostBack )
           {
               TheValue = SomeValue; // 赋初值,放到!(ispostback)中保证不会每次都赋值
           }
       }
    }像这样,这不是静态变量啊,这是一个属性,把值保存到当前页面的ViewState中
      

  8.   

    谢谢各位了,你们的方法都很好,其实像这样的,我以前一直是用viewstate的,但因为这个问题涉及到了asp.net页的执行过程,也就是我的第二个问题,所以我还是想问问。
    一阵给分。
      

  9.   

    回发的时候不光执行Page_Init
    实际上这个页面对象都是重新new出来的
    因为对于服务器,它并不知道客户端会不会回发,不可能把页面的实例保存在服务器,只可能是每一次请求的时候都重新生成这个实例,然后按顺序调用:
     构造器
     Init 事件(OnInit 方法)
     LoadViewState 方法
     LoadPostData 方法 
    (如果已实现 IPostBackDataHandler)
     Load 事件 
    (OnLoad 方法)
     RaisePostDataChangedEvent 方法 
    (如果已实现 IPostBackDataHandler)
     RaisePostBackEvent 方法 
    (如果已实现 IPostBackEventHandler)
     PreRender 事件 
    (OnPreRender 方法)
     SaveViewState 方法
     Render 方法
     Dispose 方法
     UnLoad 事件(On UnLoad 方法)
      

  10.   

    1、其实同一页面保存变量还可以用Label来保存
    2、会执行
      

  11.   

    非常感谢timmy3310(tim) ,那么,那个LoadPostData方法是什么意思呢?
      

  12.   

    LoadPostData是处理回发数据的方法,原型如下:
    public virtual bool LoadPostData(string postDataKey, NameValueCollection postCollection)
    自定义的控件可以重写这个方法,来判断控件的状态是否改变,如果改变可以返回True这个方法是由ASP.Net页面框架调用的,如果返回True,会调用对应控件的RaisePostDataChangedEvent方法来抛出服务器端的事件;换句话说,自定义的控件可以在RaisePostDataChangedEvent方法中引发自定义的事件。