1

我有一个带有按钮字段的网格视图。我想更新我的数据库中的表并更改按钮单击时的按钮图像。我也可以访问行索引的最佳事件是什么?我尝试使用 RowCommand 事件,但无法从该事件访问行索引

4

3 回答 3

2

您可以尝试使用此代码 - 基于CommandArgument

void GridView_RowCommand(Object sender, GridViewCommandEventArgs e)
  {
    if(e.CommandName=="Test")
    {
      int index = Convert.ToInt32(e.CommandArgument);
      GridViewRow row = CustomersGridView.Rows[index];
    }
  }

链接: http: //msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.gridview.rowcommand (v=vs.80).aspx

于 2012-09-25T16:06:46.087 回答
1

而不是asp:ButtonField使用asp:TemplateFieldasp:Button里面那个。设定一个CommandName说法,MyCommand。现在在RowCommand事件中,这样做

var clickedRow = (GridViewRow)((Button)sender).NamingContainer;
var clickedIndex = clickedRow.RowIndex;
于 2012-09-25T16:08:36.883 回答
0

我刚刚检查了这里的文档http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowcommand.aspx

如果您查看“注意”部分(为方便起见,请参见下文),您应该能够从 CommandArguement 属性中获取 RowIndex:

注意 若要确定引发事件的行的索引,请使用传递给事件的事件参数的 CommandArgument 属性。ButtonField 类自动使用适当的索引值填充 CommandArgument 属性。对于其他命令按钮,您必须手动设置命令按钮的 CommandArgument 属性。例如,当 GridView 控件未启用分页时,您可以将 CommandArgument 设置为 <%# Container.DataItemIndex %>。

于 2012-09-25T16:03:50.520 回答