Gridview Rowcommand Datakey выдает ошибку индекса вне диапазона
Я добавил кнопку с именем резерва в свой вид сетки, и когда я нажимаю на нее, я хочу внести некоторые изменения в вид сетки, однако она выдает ошибку индекса вне диапазона. Ниже приведен метод rowCommand:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GridView1.Rows[index];
if (row.RowType == DataControlRowType.DataRow)
{
welcomeUser.InnerText = GridView1.DataKeys[index].Value.ToString();
}
}
Ниже приведены мои столбцы gridview:
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />
<asp:BoundField DataField="BookName" HeaderText="BookName"
SortExpression="BookName" />
<asp:ButtonField ButtonType="Button" Text="Reserve" CommandName="Reverse" />
</Columns>
1 ответ
Решение
Вам нужно установить DataKeyNames, если вы хотите использовать выражение DataKey[index]
Смотрите MSDN здесь