如何在gridview中获取datakeys值

时间:2012-06-18 13:21:05

标签: asp.net

我尝试删除Gridview和数据库中的记录。我在RowCommand事件中添加了一个boundfield按钮并将CommandName设置为 Deleterecord 我想要获取该记录的主键以删除它(主键值未显示在网格视图中。以下代码块显示此事件(我尝试在文本框中显示一些数据):

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {

            if (e.CommandName == "Deleterecord")
            {
                TextBox1.Text = GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString(); 
                   //bla bla
            }
        }

我也设置了

DataKeyName="sourceName"
在gridview中

但它不是我的主键

如果我点击此按钮,会发生如下异常: 指数超出范围。必须是非负数且小于集合的大小。 参数名称:索引 我该如何解决这个问题

1 个答案:

答案 0 :(得分:0)

使用此

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {

            if (e.CommandName == "Deleterecord")
            {
LinkButton lb = (LinkButton)e.CommandSource;
GridViewRow gvr = (GridViewRow)lb.NamingContainer;

                TextBox1.Text = grid.DataKeys[gvr.RowIndex].Value.ToString(); 
                   //bla bla
            }

此处LinkButton应替换为执行此RowCommand事件的控件类型

有关详细信息,请转到Here