我有一个带有按钮字段的网格视图。我想更新我的数据库中的表并更改按钮单击时的按钮图像。我也可以访问行索引的最佳事件是什么?我尝试使用 RowCommand 事件,但无法从该事件访问行索引
3 回答
您可以尝试使用此代码 - 基于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
而不是asp:ButtonField
使用asp:TemplateField
和asp:Button
里面那个。设定一个CommandName
说法,MyCommand。现在在RowCommand
事件中,这样做
var clickedRow = (GridViewRow)((Button)sender).NamingContainer;
var clickedIndex = clickedRow.RowIndex;
我刚刚检查了这里的文档http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowcommand.aspx
如果您查看“注意”部分(为方便起见,请参见下文),您应该能够从 CommandArguement 属性中获取 RowIndex:
注意 若要确定引发事件的行的索引,请使用传递给事件的事件参数的 CommandArgument 属性。ButtonField 类自动使用适当的索引值填充 CommandArgument 属性。对于其他命令按钮,您必须手动设置命令按钮的 CommandArgument 属性。例如,当 GridView 控件未启用分页时,您可以将 CommandArgument 设置为 <%# Container.DataItemIndex %>。