在使用GridView获取数据库数据后,点击编辑然后想把RoleName 修改一下,但是修改完后点击-更新数据却没有修改,我设置了断点查看了一下,发现strRoleName.Text的值与修改前一样,这是为什么啊???strRoleName.Text不是应该为修改后文本框中的值么???
GridView中第一列为roleID ,第二列为RoleName。
我的代码有问题还是那设置的问题啊??大家帮忙看看啊!!!
    //编辑
    protected void gvRoleInfo_RowEditing(object sender, GridViewEditEventArgs e)
    {
        this.gvRoleInfo.EditIndex = e.NewEditIndex;
        this.BindData();
    } //更新
    protected void gvRoleInfo_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        Model.RoleInfo role = new Model.RoleInfo();
        string roleID = this.gvRoleInfo.Rows[e.RowIndex].Cells[0].Text;
        TextBox strRoleName = this.gvRoleInfo.Rows[e.RowIndex].Cells[1].Controls[0] as TextBox;        role.RoleID = roleID;
        role.RoleName = strRoleName.Text;
        BLL.RoleInfoBLL.RoleInfoModify(role);
        this.gvRoleInfo.EditIndex = -1;
       

解决方案 »

  1.   

    page_load里是否设置了
    if(!IsPostBack)
    {
    //绑定数据
    }
      

  2.   

    page_load里是否设置了 
    if(!IsPostBack) 

    //绑定你的GridVeiw
    }
      

  3.   

    题外话:
    当楼主习惯用模板列时,就不会用Cells[1].Controls[0]这样既难用又易出错的方式了!
    http://www.cnblogs.com/downmoon/archive/2007/12/30/1021151.html
    http://www.cnblogs.com/downmoon/archive/2008/12/04/1347581.html
      

  4.   

    if(!IsPostBack) 
    {
     
    }
    这个加上试试先
      

  5.   

    page_load里加上
    if(!IsPostBack) 

    //绑定数据 
    }
      

  6.   

    你更新完后忘了重新绑定:
    this.BindData(); //更新 
        protected void gvRoleInfo_RowUpdating(object sender, GridViewUpdateEventArgs e) 
        { 
            Model.RoleInfo role = new Model.RoleInfo(); 
            string roleID = this.gvRoleInfo.Rows[e.RowIndex].Cells[0].Text; 
            TextBox strRoleName = this.gvRoleInfo.Rows[e.RowIndex].Cells[1].Controls[0] as TextBox;         role.RoleID = roleID; 
            role.RoleName = strRoleName.Text; 
            BLL.RoleInfoBLL.RoleInfoModify(role); this.BindData(); 
            this.gvRoleInfo.EditIndex = -1;