将查询出的数据绑定到gridview中后,用onRowEditing事件将每一行的具体信息显示到textbox中,然后修改信息,点击“修改”按钮,执行修改语句,如何获取我要修改这条数据的ID呢?还望大家指教,谢谢!

解决方案 »

  1.   

    你那个修改按钮不是有个属性CommandArgument='<%#Eval("id") %>'和 CommandName="lblEditer",然后再事件
    protected void gv_List_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                if (e.CommandName == "lblEditer")//删除
                {
                    btn_Save.Visible = true;
                    btn_Add.Visible = false;
                    Sharewin.Model.columnInfo column = columnBLL.GetModel(int.Parse(e.CommandArgument.ToString()));
                    EditerModel(column);
                }
    }
    进行操作可以了!
      

  2.   

    一般都是把关键ID绑定在按钮的commandargument属性中吧
      

  3.   

    绑定在datakey里面!Updating事件里面
     long id= _gvMessage.DataKeys[e.RowIndex].Value
      

  4.   


    我已经绑定在datakey里面了 GridView1.DataKeyNames = new string[] { "Id" };
    就是想知道sql语句里最后的条件 where id='"+()+"' 括号里的东西该怎么写
      

  5.   

    _gvMessage.DataKeys[e.RowIndex].Value
    就是这种写法吧
      

  6.   


    "e.RowIndex"  .不出来RowIndex啊,只有Equals,GetHashCode,GetType,ToString 
      

  7.   


    我感觉你好像都写在了显示层。 where id=@id  在gridview 绑定数据后,只要根据GridView1.DataKeyNames = new string[] { "Id" }; 只要根据这id做更改,修改,删除。你只需要遍历那一行的数据就可以了。public void Bind()
        {
            UserInfoBLL userInfoBLL = new UserInfoBLL();
            List<UserInfo> list = userInfoBLL.SelectUserInfo();
            this.gvUserInfo.DataSource = list;
            gvUserInfo.DataKeyNames = new string[] { "userID" };
            this.gvUserInfo.DataBind();
        }    /// <summary>
        /// 编辑
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void gvUserInfo_RowEditing(object sender, GridViewEditEventArgs e)
        {
            this.gvUserInfo.EditIndex = e.NewEditIndex;
            Bind();
        }
        /// <summary>
        /// 取消编辑
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void gvUserInfo_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            this.gvUserInfo.EditIndex = -1;
            Bind();
        }    /// <summary>
        /// 保存
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void gvUserInfo_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            string userID = this.gvUserInfo.DataKeys[e.RowIndex].Value.ToString();
            userInfo.UserID = int.Parse(userID);        userInfo.UserName = ((TextBox)(this.gvUserInfo.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString();
            userInfo.UserSex = ((TextBox)(this.gvUserInfo.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString();
            userInfo.UserDesc = ((TextBox)(this.gvUserInfo.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString();        int i = userInfoBLL.UpdateUserInfo(userInfo);
            if (i > 0)
            {
                Response.Write("<script>alert('修改成功!')</script>");
            }
            else
            {
                Response.Write("<script>alert('修改失败!')</script>");
            }        Bind();
        }
      

  8.   

     protected void tb_Add_Click(object sender, EventArgs e)
        {
            string updateSql = "update tb_C set AreaId='" + Convert.ToInt32(this.area.SelectedValue.ToString().Trim()) + "',Reporter='" + this.Reporter.Text.Trim() + "',QuestionsId='" + Convert.ToInt32(this.questions.SelectedValue.ToString().Trim()) + "',OtherFileNum='" + this.otherfilenum.Text.Trim() + "',ReporterDate='" + this.reporterdate.Text.Trim() + "',CompDrawNum='" + this.compdrawnum.Text.Trim() + "',ProName='" + this.proname.Text.Trim() + "',ProAddress='" + this.proaddress.Text.Trim() + "',Pressure='" + this.pressure.Text.Trim() + "',One_Five='" + this.one_five.Text.Trim() + "',BeingQuestions='" + this.beingquestions.Text.Trim() + "',ResolveMethod='" + this.resolvemethod.Text.Trim() + "',Leader='" + this.leader.Text.Trim() + "',E_DrawChanges='" + this.e_drawchanges.Text.Trim() + "',ResolveDate='" + this.resolvedate.Text.Trim() + "',RelWithUniter='" + this.relwithuniter.Text.Trim() + "',UnresolveReason='" + this.unresolvereason.Text.Trim() + "' where Id='"+GridView1.DataKeys[e.]+"'";
            cc.ExecSQL(updateSql);
            Response.Write(cc.MessageBox("编辑成功!", "QuestionsCl.aspx"));
        }我只想用普通的按钮来实现修改功能,
    而不是
     protected void gvUserInfo_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {}
    这样的,有办法么?