我尝试删除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中但它不是我的主键
如果我点击此按钮,会发生如下异常: 指数超出范围。必须是非负数且小于集合的大小。 参数名称:索引 我该如何解决这个问题
答案 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