0

我尝试删除 Gridview 和数据库中的记录。我添加了一个 boundfield 按钮并在 RowCommand 事件中将 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中,但它不是我的主键

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

4

1 回答 1

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事件的控件类型

欲了解更多信息,请点击这里

于 2012-06-18T13:27:49.683 回答