在做删除时怎样获得删除按钮对应的那行的主键值!!!!
请指教代码,谢谢!!!!急用

解决方案 »

  1.   

        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Del")
            {
                int iIndex = Convert.ToInt16(e.CommandArgument);
                string F_NewsId = GridView1.DataKeys[iIndex].Value.ToString();
                int DelID = Convert.ToInt16(F_NewsId);
                OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["ConnectionString"].ToString()));
                conn.Open();
                string sql = "DELETE  FROM news WHERE id=" + DelID;
                OleDbCommand cmd = new OleDbCommand(sql, conn);
                OleDbDataReader odr = cmd.ExecuteReader();
                conn.Close();
                Response.Redirect("News.aspx");
            }
        }
      

  2.   

    http://www.cnblogs.com/downmoon/archive/2007/12/30/1021151.html
    http://blog.csdn.net/downmoon/archive/2007/12/14/1935654.aspx
      

  3.   

    一般把哪行对应的行号记录下来了的,举例说明一下
    有个datatable是你需要绑定的数据,如果里面有什么userid之类的主键最好,如果没有就自己手动加一列主键
    在gridview数据绑定的时候将这个主键隐藏的放入该列的某个位置,比如,你的按钮是图片按钮,你可以将你的主键标识放入alerttext或者tooltiptext这些地方
    当点击该按钮提交表单的时候你是可以获取到整个行的,这个时候你可以findcontorl或者直接获取sender对象然后取你放入的主键值,然后把通过值去你绑定datatable里面找
      

  4.   


      Button btn = (Button)sender;
      GridViewRow gvr = (GridViewRow)btn.NamingContainer;
      int Id = Convert.ToInt32(gvr.Cells[0].Text);
      

  5.   

    删除时间中写如下代码就可以了     protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
           // e.RowIndex 删除行的索引
            //GridView1.Rows[e.RowIndex].Cells[主建列索引].Text
           string value = GridView1.Rows[e.RowIndex].Cells[0].Text;
        }
      

  6.   

    .aspx        <asp:GridView ID="GridView1" runat="server">
                <Columns>
                    <asp:TemplateField ShowHeader="False">
                        <ItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false" CommandName="del"
                                Text="删除按钮" OnCommand="LinkButton1_Command" CommandArgument='<%#Eval("你的主键字段名") %>'></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>.cs    protected void LinkButton1_Command(object sender, CommandEventArgs e)
        {
            Response.Write("<script>alert("+e.CommandArgument.ToString()+")</script>");//e.CommandArgument就是主键
        }
      

  7.   

    用这样GridView1.Rows[e.RowIndex].Cells[0].Text我怎么取不到值啊??????请谁来帮帮我
      

  8.   

    如果是绑定列可以使用Text如果是模板列等就需要用Controls集合等其它方法了。
      

  9.   

    标准做法设置GridView的DataKeyNames属性为主键
    <asp:GridView ID="gvLogs" runat="server" DataKeyNames="id"...然后在GridView的RowDeleting事件中处理    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
            //...
        }