gridview 点击删除的话,后台cs文件怎么获取要删除的ID?
简而言之,就是gridview 后台怎么获取前台选中的ID啊?

解决方案 »

  1.   

    在你绑定的时候给主键:GridView1.DataKeyNames = new string[] { "主键" }取:GridView1.DataKeys[e.RowIndex].Value.ToString()
      

  2.   

    在 GridView1_RowDeleting中获取主键的值
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
     {
        int index=GridView1.DataKeys[e.RowIndex].Value;
     }
      

  3.   

    foreach(GridViewRow gvr in GridView.rows)
    {
    //如果你的ID是绑定在label里的
    Label lb=gvr.FindControl("Label1");
    //Label1是放在GridView里的ID号lb.text里的值就是你要的
    }
      

  4.   

    错误 2 无法将类型“object”隐式转换为“int”。存在一个显式转换(是否缺少强制转换?)
      

  5.   


    在 GridView1_RowCommand中获取主键的值:protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
    int OrderId = Convert.ToInt32(GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Value);}在 GridView1_PageIndexChanging中获取主键的值protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
    int index=GridView1.DataKeys[e.NewPageIndex].Value;
    }在 GridView1_RowDeleting中获取主键的值
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
    int index=GridView1.DataKeys[e.RowIndex].Value;
    }在 GridView1_RowEditing中获取主键的值
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
    int index = GridView1.DataKeys[e.NewEditIndex].Value;
    }在 GridView1_RowUpdating中获取主键的值protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
    int index = GridView1.DataKeys[e.RowIndex].Value;
    }在 GridView1_RowDataBound中获取主键的值
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
    int index = GridView1.DataKeys[e.Row.RowIndex].Value;
    }
      

  6.   


    datakeys获得的value是一个object。convert.toint32(datakeyvalue)
      

  7.   

    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) 

        int index=(int)GridView1.DataKeys[e.RowIndex].Value; 

      

  8.   

    <ItemTemplate>
        <%#Eval("ID") %>
    </ItemTemplate>
    ID绑定在这...
      

  9.   

    GridView.DataKeys[e.RowIndex].Value; 
      

  10.   

    索引超出范围。必须为非负值并小于集合大小。
    参数名: index
     int id =(int) this.grid.DataKeys[e.RowIndex].Value;
    有错
      

  11.   

    你的GRID有没有设置DATAKEYS呢? 把HTML代码贴上来
      

  12.   


    <asp:GridView>
    <Columns>
    <asp:TemplateField HeaderText=""> 
        <ItemTemplate>
        <asp:LinkButton runat="server" ID="del" CommandName="delete" CommandArgument='<%#Eval("ID") %>'>删除</asp:LinkButton>
        </ItemTemplate>
        </asp:TemplateField>
        </Columns>
        </asp:GridView>
      

  13.   

    <asp:GridView>
    <Columns>
    <asp:TemplateField HeaderText=""> 
        <ItemTemplate>
        <asp:LinkButton runat="server" ID="del" CommandName="delete" CommandArgument='<%#Eval("ID") %>'>删除</asp:LinkButton>
        </ItemTemplate>
        </asp:TemplateField>
        </Columns>
        </asp:GridView>
    在<asp:GridView> 加个属性DataKeyNames="ID"int index=(int)GridView1.DataKeys[e.RowIndex].Value; 
      

  14.   


    ===>code<asp:GridView DataKeysName="ID"><Columns><asp:TemplateFieldHeaderText=""><ItemTemplate><asp:LinkButtonrunat="server" ID="del" CommandName="delete" CommandArgument='<%#Eval("ID")%>'>删除</asp:LinkButton></ItemTemplate></asp:TemplateField></Columns></asp:GridView>
      

  15.   

    咦?没有runat=server也可以啊?
      

  16.   

    这样吧。去百度谷歌找一个gridview的使用范例……
      

  17.   

    protected void del_Click(object sender, EventArgs e)

        string id=((LinkButton)sender).CommandArgument.ToString();
    }
      

  18.   

    http://blog.csdn.net/xianfajushi/archive/2008/11/30/3413317.aspx
      

  19.   

    你的 GridView的数据源是自动绑定还是手动绑定的?
    如果这样的话你可以放个隐藏域,将值赋给隐藏域,然后循环来来取
      

  20.   

    gridview 编辑,删除,更新的用法
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridViewUp.aspx.cs" Inherits="gridview_GridViewUp" %><asp:GridView ID="GridView1" runat="server"                             AutoGenerateColumns="False" AllowPaging="True" PageSize="12" OnRowCancelingEdit="GridView1_RowCancelingEdit"
                                OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowDeleting="GridView1_RowDeleting"
                                [color=#800000]DataKeyNames="id,name" [/color] OnPageIndexChanging="GridView1_PageIndexChanging" DataMember="card,price" OnRowDataBound="GridView1_RowDataBound" GridLines="None">
                                <Columns>
                                    <asp:BoundField HeaderText="身份证号" DataField="card" Visible=false />
                                    <asp:BoundField HeaderText="编号" DataField="id" ReadOnly="True" />
                                    <asp:BoundField DataField="name" HeaderText="姓名" ReadOnly="True" />
                                    <asp:TemplateField HeaderText="身份证号">
                                        <ItemTemplate>
                                            <%# eval_r("card") %>
                                        </ItemTemplate>
                                        <EditItemTemplate>
                                            <asp:TextBox ID="TBCard" Text='<%# eval_r("card") %>' runat="server" Width="140px" />
                                        </EditItemTemplate>
                                        <ItemStyle Width="150px" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="学历">
                                        <ItemTemplate>
                                            <%# eval_r("description")%>
                                        </ItemTemplate>
                                        <EditItemTemplate>
                                            <asp:HiddenField ID="HDFXueli" runat="server" Value='<%# eval_r("xueli") %>' />
                                            <asp:DropDownList ID="DDLXueli" runat="server" Width="90px" />
                                        </EditItemTemplate>
                                        <ItemStyle Width="100px" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="价格">
                                        <ItemTemplate>
                                            <%# eval_r("price") %>
                                        </ItemTemplate>
                                        <EditItemTemplate>
                                            <asp:TextBox ID="TBPrice" Text='<%# eval_r("price") %>' runat="server" Width="90px" />
                                        </EditItemTemplate>
                                        <ItemStyle Width="100px" />
                                    </asp:TemplateField>
                                    <asp:BoundField HeaderText="建立时间" DataField="createdate" ReadOnly="True" />
                                    <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" HeaderText="操作" />
                                </Columns>
                                <PagerSettings FirstPageText="" LastPageText="" NextPageText="" PreviousPageText="" />
                                <RowStyle Height="20px" BackColor="#F7F6F3" ForeColor="#333333" />
                                <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                <EditRowStyle BackColor="#999999" />
                                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                            </asp:GridView>
                        
    GridViewUp.aspx.cs文件代码:
     public partial class gridview_GridViewUp : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GridViewBind();
            }
        }    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            GridViewBind();
        }    private void GridViewBind()
        {
            string connStr = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
            string SqlStr = "Select a.*,b.description FROM test01 a,xueli b where a.xueli=b.code and a.id<1000 and a.id>200";
            DataSet ds = new DataSet();        try
            {
                SqlConnection conn = new SqlConnection(connStr);
                if (conn.State.ToString() == "Closed") conn.Open();
                SqlDataAdapter da = new SqlDataAdapter(SqlStr, conn);
                da.Fill(ds, "test01");
                if (conn.State.ToString() == "Open") conn.Close();            GridView1.DataSource = ds.Tables[0].DefaultView;
                GridView1.DataBind();
            }
            catch (Exception ex)
            {
                Response.Write("数据库错误,错误原因:" + ex.Message);
                Response.End();
            }
        }    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (((DropDownList)e.Row.FindControl("DDLXueli")) != null)
            {       
                DropDownList ddlxueli = (DropDownList)e.Row.FindControl("DDLXueli");            // 生成 DropDownList 的值,绑定数据
                string connStr = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
                string SqlStr = "Select * from xueli";
                DataSet ds = new DataSet();            SqlConnection conn = new SqlConnection(connStr);
                if (conn.State.ToString() == "Closed") conn.Open();
                SqlDataAdapter da = new SqlDataAdapter(SqlStr, conn);
                da.Fill(ds, "xueli");
                if (conn.State.ToString() == "Open") conn.Close();            ddlxueli.DataSource = ds.Tables[0].DefaultView;
                ddlxueli.DataTextField = "description";
                ddlxueli.DataValueField = "code";
                ddlxueli.DataBind();
                //            // 选中 DropDownList
                ddlxueli.SelectedValue = ((HiddenField)e.Row.FindControl("HDFXueli")).Value;
                //
            }
        }    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            GridViewBind();
        }
        protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridView1.EditIndex = -1;
            GridViewBind();
        }    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            string id = GridView1.DataKeys[e.RowIndex].Values[0].ToString();
            string card = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TBCard")).Text;
            string xueli = ((DropDownList)GridView1.Rows[e.RowIndex].FindControl("DDLXueli")).SelectedValue;
            string price = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TBPrice")).Text;        string connStr = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
            string SqlStr = "update test01 set card='" + card + "',xueli='" + xueli + "',price='" + price + "' where id=" + id;        try
            {
                SqlConnection conn = new SqlConnection(connStr);
                if (conn.State.ToString() == "Closed") conn.Open();
                SqlCommand comm = new SqlCommand(SqlStr, conn);
                comm.ExecuteNonQuery();
                comm.Dispose();
                if (conn.State.ToString() == "Open") conn.Close();            GridView1.EditIndex = -1;
                GridViewBind();
            }
            catch (Exception ex)
            {
                Response.Write("数据库错误,错误原因:" + ex.Message);
                Response.End();
            }
        }    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string id = GridView1.DataKeys[e.RowIndex].Values[0].ToString();
            string connStr = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
            string SqlStr = "delete from test01 where id=" + id;        try
            {
                SqlConnection conn = new SqlConnection(connStr);
                if (conn.State.ToString() == "Closed") conn.Open();
                SqlCommand comm = new SqlCommand(SqlStr, conn);
                comm.ExecuteNonQuery();
                comm.Dispose();
                if (conn.State.ToString() == "Open") conn.Close();            GridView1.EditIndex = -1;
                GridViewBind();
            }
            catch (Exception ex)
            {
                Response.Write("数据库错误,错误原因:" + ex.Message);
                Response.End();
            }
        }
    }sql server2000生成表代码:
    Create TABLE [dbo].[test01] (
        [id] [decimal](18, 0) IDENTITY (1, 1) NOT NULL ,
        [name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
        [card] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
        [xueli] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
        [price] [decimal](18, 0) NULL ,
        [createdate] [datetime] NULL
    ) ON [PRIMARY]
    GOAlter TABLE [dbo].[test01] ADD
        CONSTRAINT [DF_test01_createdate] DEFAULT (getdate()) FOR [createdate],
        CONSTRAINT [PK_test01] PRIMARY KEY CLUSTERED
        (
            [id]
        ) ON [PRIMARY]
    GO
    Create TABLE [dbo].[xueli](
        [id] [int] IDENTITY(1,1) NOT NULL,
        [code] [int] NULL,
        [description] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    CONSTRAINT [PK_xueli] PRIMARY KEY CLUSTERED
    (
        [id] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
      

  21.   

    现在gridview属性上设置DataKeys 例如id,name
    //删除操作
        protected void LinkButton10_Click(object sender, EventArgs e)
        {            Control col = sender as Control;
                int index = ((GridViewRow)col.Parent.Parent).RowIndex;
                int id = int.Parse(GridView1.DataKeys[index].Values[0].ToString());            
                string strsqq = "delete from gh_sys  where gh_id=" + id;    }
      

  22.   

    if(commandName="delete")
        string id = e.CommandArgument.ToString();
    ExectSql(id);
      

  23.   

    .aspx页面:
    在gridview 中放入  <asp:LinkButton ID="LinkButton1" runat="server" CommandName="tuihui" CommandArgument='<%# Eval("ID") %>'>退回
    cs文件:
     protected void Gridview1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            switch (e.CommandName)
            {
                case "tuihui":
                    Response.Write(e.CommandArgument);
                    break;        }
        }
      

  24.   

    前台代码
       <asp:TemplateField HeaderText="操作">
                                    <ItemTemplate>
                                        <asp:LinkButton ID="btnDelete" runat="server" CausesValidation="false" CommandName="delete"
                                            OnClientClick="return confirm('您确定要删除吗?')" Text="删除"></asp:LinkButton>
                                    </ItemTemplate>
                                </asp:TemplateField>
    后台
        protected void gvMessageBoard_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int Id = Convert.ToInt32(this.gvMessageBoard.DataKeys[e.RowIndex].Value.ToString());        if (manager.MessageBoardDelete(Id))
            {
                BindGrid();
                this.Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('删除成功')</script>");        }
            else
            {
                this.Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('删除失败')</script>");
            }
        }
    记得在gridview 属性里面加上这个 DataKeyNames="MId"
      

  25.   

    //绑定ID  
          <asp:TemplateField HeaderText="ID" Visible="False">
                                                        <ItemTemplate>
                                                            <asp:Label ID="lblID" runat="server" Text='<%# Eval("ID") %>'></asp:Label>
                                                        </ItemTemplate>//获取ID
            int ID = int.Parse((GridView1.Rows[e.RowIndex].FindControl("lblID") as Label).Text);
      

  26.   

    这个帖子跟你的内容一样 
     有答案
    http://topic.csdn.net/u/20100115/15/d4c41926-9e50-4fe7-8030-96d0d59b01b9.html
      

  27.   

    在 GridView1_RowCommand中获取主键的值:protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
    int OrderId = Convert.ToInt32(GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Value);}在 GridView1_PageIndexChanging中获取主键的值protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
    int index=GridView1.DataKeys[e.NewPageIndex].Value;
    }在 GridView1_RowDeleting中获取主键的值
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
    int index=GridView1.DataKeys[e.RowIndex].Value;
    }在 GridView1_RowEditing中获取主键的值
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
    int index = GridView1.DataKeys[e.NewEditIndex].Value;
    }在 GridView1_RowUpdating中获取主键的值protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
    int index = GridView1.DataKeys[e.RowIndex].Value;
    }在 GridView1_RowDataBound中获取主键的值
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
    int index = GridView1.DataKeys[e.Row.RowIndex].Value;
    }
      

  28.   

    前台                                   <asp:TemplateField HeaderText="操作" ItemStyle-HorizontalAlign="Center">
                                                <ItemTemplate>
                                                    <asp:LinkButton runat="server" ID="lb_deleteInfo" CommandArgument='<%#Eval("ArticleId") %>'
                                                        CommandName="deleteinfo" Text="删除" OnClientClick="javascript:return confirm('确定删除信息吗?');" />
                                                </ItemTemplate>
                                            </asp:TemplateField>后台        protected void GV_article_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                if (e.CommandName == "deleteinfo")
                {
                    int nId = int.Parse(e.CommandArgument.ToString());
                    BLL.Article.Delete(nId);
                }
                BindData(condition);
            }
      

  29.   

       protected void gvFList_RowCommand(object sender, GridViewCommandEventArgs e)
    {   
        int id = Convert.ToInt32(e.CommandArgument) 
        string name = e.CommandName
    if(name==delete)
    {
      //删除方法
      //绑定方法
    }}