ASP。NET(C#)
一个页面用来更新用户资料
该页面有一个 TexBox1在Page_Load的时候检索该用户信息 并找到该用户的名字,并将名字在TextBox1里显示  
private void Page_Load(object sender, System.EventArgs e)
{
   ...取数据...
   TextBox1.Text = Rs["name"].ToString();
}
当我需要修改这个名子后 点按纽Button1 则更新用户名
private void Button1_Click(object sender, System.EventArgs e)
{
   string pro = TextBox1.Text.ToString();
   ...
   数据更新语句
   ...}
这样为什么不能更新?
调试的时候发现 pro变量仍然是原来的名字 而不是修改过的名字(就是说点按纽后没有获取TextBox1里的值)
数据库操作语句没有错请问这是为什么?

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {
      if(!IsPostBack)
      {
       ...取数据...
       TextBox1.Text = Rs["name"].ToString();
       }
    }
      

  2.   

    Page_Load事件页面打开的时候都要执行,你点击修改按钮后向服务器提交信息,这时候后Page_Load事件又执行了.加上if(!IsPostBack){,.....}它里面的信息只在第一次打开页面的时候执行.
      

  3.   

    在page_load中加上if(!IsPostBack)就行了
      

  4.   

    adandelion(猪头) ( ) 信誉:100  2005-08-12 12:50:00  得分: 0  
     
    正确
      

  5.   

    点击按钮时,在执行Button1_Click中的代码是会先执行Page_Load,所以你的值就不对了
    修改办法上边的已经说过了,不再重复,你可以通过添加监视看看代码的执行过程就什么都明白了
    ======================================================
    欢迎加入.net群:13817403(如果遭拒绝则说明群已满)本人大四,下学期找工作了,各位兄弟帮帮忙
    我的简历:http://202.118.70.40/winal/introduce.aspx
    ======================================================
      

  6.   

    对,应该加在if(!IsPostBack)里边,