Установите поля CommandName и CommandArgument в GridView, после чего вы сможете получить доступ к этим значениям в коде позади.
Допустим, у вас есть кнопка изображения в каждой строке, и когда пользователь выбирает кнопку, вы хотите получить доступ к имени команды и параметру для этой строки.
<asp:GridView ID="gvwRecords" runat="server" DataKeyNames="ID" DataSourceID="objRecords" OnRowCommand="gvwRecords_RowCommand">
<Columns>
<asp:TemplateField HeaderImageUrl="~/Images/Approve_Header_Dark.gif">
<ItemTemplate>
<asp:ImageButton runat="server" ID="btnApprove" %>'
CausesValidation="false" AlternateText="Approve record" ImageUrl="~/Images/Unapproved.gif"
CommandName="Approve" CommandArgument='<%# Eval("ID") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
В коде позади:
protected void gvwRecords_RowCommand(object sender, GridViewCommandEventArgs e)
{
int recordID = int.Parse(e.CommandArgument.ToString());
if (recordID > 0)
{
switch (e.CommandName.ToLower())
{
case "sort":
break;
case "approve":
Record.ApproveRecord(recordID);
gvwRecords.DataBind();
break;
...
}
}
}