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