protected void Page_Load(object sender, EventArgs e)
    {
        userlid = Convert.ToInt32(Request.QueryString["logid"]);
        useruid = Convert.ToInt32(Request.QueryString["userid"]);
        Method obj = new Method();
        DataSet dr = obj.SelectBolginfo(useruid);
        txtBlogTitle.Text = dr.Tables[0].Rows[0][0].ToString();
        txtBlogIntro.Text = dr.Tables[0].Rows[0][1].ToString();
        txtBlogClickCount.Text = dr.Tables[0].Rows[0][2].ToString();
        txtBlogCollege.Text = dr.Tables[0].Rows[0][3].ToString();
        txtBlogUpdateDate.Text = dr.Tables[0].Rows[0][4].ToString();
        DataSet ds = obj.Selectlogbylogiduserid(userlid,useruid);
        txtNewLogTitle.Text = ds.Tables[0].Rows[0][0].ToString();
        txtNewLogContent.Text = ds.Tables[0].Rows[0][1].ToString();
     }
    protected void btnSubmitLog_Click(object sender, EventArgs e)
    {
        Method obj = new Method();
        Response.Write(txtNewLogContent.Text);
        int i = obj.Updatelog(userlid, txtNewLogTitle.Text, txtNewLogContent.Text, ckbPublic.Checked, Convert.ToInt32(ddlCate.SelectedValue));
    }
这个页面按下button后页面上的东西并没有保存到数据库中,我用断点调试后发现所有保存到数据库中的内容还是之前没按BUTTON的东西。这个说明我在按下button之后,页面重新执行了PAGE_Load将原先在数据库中的东西重新从数据库中调出来了  实在想不出来怎么能解决这个问题  请哪位高手帮我解决下 谢谢

解决方案 »

  1.   


    protected void Page_Load(object sender, EventArgs e) 
        { 
          if(!Page.IsPostback)
          {
            userlid = Convert.ToInt32(Request.QueryString["logid"]); 
            useruid = Convert.ToInt32(Request.QueryString["userid"]); 
            Method obj = new Method(); 
            DataSet dr = obj.SelectBolginfo(useruid); 
            txtBlogTitle.Text = dr.Tables[0].Rows[0][0].ToString(); 
            txtBlogIntro.Text = dr.Tables[0].Rows[0][1].ToString(); 
            txtBlogClickCount.Text = dr.Tables[0].Rows[0][2].ToString(); 
            txtBlogCollege.Text = dr.Tables[0].Rows[0][3].ToString(); 
            txtBlogUpdateDate.Text = dr.Tables[0].Rows[0][4].ToString(); 
            DataSet ds = obj.Selectlogbylogiduserid(userlid,useruid); 
            txtNewLogTitle.Text = ds.Tables[0].Rows[0][0].ToString(); 
            txtNewLogContent.Text = ds.Tables[0].Rows[0][1].ToString(); 
          }
        } 
      

  2.   

    看来LZ没有理解Page.IsPostback,仔细看看基础的书就知道原因了
      

  3.   

    Page.IsPostback,如果没这个判断页面 点了后回传过来用数据库里的旧数据覆盖了你先前做的改变,数据库数据改是改动了,只是看起来没改动
      

  4.   

    嗯,IsPostback的问题。点button后,页面回到server端,先去做了 Page_Load(),如果不加IsPostback的话,就又会重新根据userId去数据库中取数据,并对textbox赋值,然后再去执行Button_Click事件,所以保存的值还是没有发生变化。
      

  5.   

    if(!Page.IsPostback)
    很基础的问题啊,一看标题就知道是这个问题了。
    而且调试就可以发现问题的,lz要学会独立解决问题啊
      

  6.   

    嗯,IsPostback的问题。 点button后,页面回到server端,先去做了 Page_Load(),如果不加IsPostback的话,就又会重新根据userId去数据库中取数据,并对textbox赋值,然后再去执行Button_Click事件,所以保存的值还是没有发生变化。 
      

  7.   

    正解啊,好好理解 ISPOSTBACK
      

  8.   

     Page_Load的所有代码都放到if(!Page.IsPostback) 这个判断里去执行
      

  9.   

    protected void Page_Load(object sender, EventArgs e) 
        { 
         if(!Page.IsPostBack)
       {
            userlid = Convert.ToInt32(Request.QueryString["logid"]); 
            useruid = Convert.ToInt32(Request.QueryString["userid"]); 
            Method obj = new Method(); 
            DataSet dr = obj.SelectBolginfo(useruid); 
            txtBlogTitle.Text = dr.Tables[0].Rows[0][0].ToString(); 
            txtBlogIntro.Text = dr.Tables[0].Rows[0][1].ToString(); 
            txtBlogClickCount.Text = dr.Tables[0].Rows[0][2].ToString(); 
            txtBlogCollege.Text = dr.Tables[0].Rows[0][3].ToString(); 
            txtBlogUpdateDate.Text = dr.Tables[0].Rows[0][4].ToString(); 
            DataSet ds = obj.Selectlogbylogiduserid(userlid,useruid); 
            txtNewLogTitle.Text = ds.Tables[0].Rows[0][0].ToString(); 
            txtNewLogContent.Text = ds.Tables[0].Rows[0][1].ToString(); 
         }
        } 
        protected void btnSubmitLog_Click(object sender, EventArgs e) 
        { 
            Method obj = new Method(); 
            Response.Write(txtNewLogContent.Text); 
            int i = obj.Updatelog(userlid, txtNewLogTitle.Text, txtNewLogContent.Text, ckbPublic.Checked, Convert.ToInt32(ddlCate.SelectedValue)); 
        } 
    加个Page.IsPostBack就OK了
      

  10.   

    大家都说明原因了,就不说了!不过,最好你断点看看值的情况,这样你就会明白postback的意思了!以及以后碰到另外的原因时就知道怎么解决了!
      

  11.   

    isPostback属性获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问。如果是为响应客户端回发而加载该页,则为   true;否则为   false。     
      所以if(!IsPostBack)的意思就是如果不是了响应客户端回发而加载该页的时候执行{}里的数据。所以你的以上代码最好放在里面,这样在你使用分页的时候就知道为什么了,你可以为你这个datagird加入分页,然后分别把代码放在{}里面和外面看看效果
      

  12.   

    楼主如果不明白PostBack的原理的话最好先看看asp.net页面生存期的知识
      

  13.   

    如果页面生存期的LoadPostBack在Load之后执行,那就没问题了:-)
    玩笑,
    混点分。