Если в GridView имеется более одного поля кнопки, установите атрибут CommandName
.Таким образом, мы можем определить, какая кнопка нажата в событии RowCommand.Поэтому всегда устанавливайте атрибут commandName.
<Columns>
<asp:BoundField HeaderText="ID" DataField="ID" ItemStyle-Width="120px"/>
<asp:ButtonField HeaderText="Download Link" Text="Download" CommandName="cmd"/>
</Columns>
В обработчике событий RowCommand
свойство GridViewCommandEventArgs.CommandArgument
возвращает индекс строки, в которой нажата кнопка.
protected void DocumentGrid_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "cmd")
{
int index = int.Parse(e.CommandArgument.ToString());
GridViewRow row = DocumentGrid.Rows[index];
if (row.RowType == DataControlRowType.DataRow)
{
Response.Write(row.Cells[0].Text);
}
}
}