在ASP.NET下用VS2008写了一段程序实现页面传值功能:
         protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                this.TextBox1.Enabled = false;//如是首次加载则把Textbox1置为不可编辑
                
                
            }
            else
                if(!IsPostBack)
            {
                _Default a = new _Default();
                a = (_Default)Context.Handler;
                this.Label2.Text = a.re();//获取用户输入的用户名并把它传给本页的Label2显示
                this.TextBox1.Enabled = true;//把控件变为可编辑
                Label5.Text = null;
                
               
            }
        }
为什么有的时候执行时没错,可重新生成解决方案或将VS关掉后再开时执行就出错。有的时候则更离谱,明明我已经删掉了一个控件了但执行时却又显示此控件,刚才执行时则在首次加载页面时不执行this.TextBox1.Enabled = false语句。
这究竟是什么原因呢?望各位大侠好心指导下,如果要改代码实现此功能的话要怎么改呢?

解决方案 »

  1.   

    this.TextBox1.Enabled = false;
     if(!IsPostBack) 
      { 
        _Default a = new _Default(); 
        a = (_Default)Context.Handler; 
        this.Label2.Text = a.re();
         this.TextBox1.Enabled = true;
         Label5.Text = null; 
      } 
    要重新编译再执行
      

  2.   

    想问一问 
    wuyq11
    那这段代码有错吗?
      

  3.   

    IsPostBack 是回发,你判断反了
      

  4.   

    那是要把两个IsPostBack的判断对调一下对吗?
      

  5.   

    这样写:        protected void Page_Load(object sender, EventArgs e) 
            { 
                if (!Page.IsPostBack) 
                { 
                    this.TextBox1.Enabled = false;//如是首次加载则把Textbox1置为不可编辑              
                  } 
                else 
                { 
                    _Default a = new _Default(); 
                    a = (_Default)Context.Handler; 
                    this.Label2.Text = a.re();//获取用户输入的用户名并把它传给本页的Label2显示 
                    this.TextBox1.Enabled = true;//把控件变为可编辑 
                    Label5.Text = null;              
                } 
            } 
      

  6.   

    if (!Page.IsPostBack) //这样是首次加载
      

  7.   

    楼上,按你这样写的话好像没法把用户名带给Label2啊是我机子问题吗(机子上有木马会对结果影响吗)
      

  8.   

    错了!是说 
    lixinramaxel41658133大哥
      

  9.   

    有的时候指什么,9楼那样写就是在非回发时(第一次加载或f5刷新)Textbox1置为不可编辑,页面回发时(譬如按钮之类的事件刷新)获取用户输入的用户名并把它传给本页的Label2显示,然后把控件变为可编辑,和LZ期望的结果不一致?
      

  10.   

    按9楼的方发执行了一遍,登录完成后回到此页时,用户名没有带到Label上,而且Textbox还是不可编辑啊,就跟第一次加载时是一样的。
    有的时候就是比如把VS关了再开执行时就没有异常了,但是在重新生成解决方案后有出现异常
      

  11.   

    但是一开始要先登录到这个页面啊然后点一个登录去到登录页面,登录完成后在回来并把用户名带来放到Label上啊,现在的网站不都这样吗
      

  12.   

    刚才把!page.IsPostBack改为page.IsPostBack就好了谢谢各位!!!!