Строка аргумента команды пуста в событии rowcommand C#
У меня есть сетка. Внутри него у меня есть кнопка ссылки. Я хочу получить индекс строки кнопки, которая была нажата внутри обработчика события rowcommand. Это можно сделать с помощью свойства аргумента команды. однако он возвращает пустую строку и получает исключение.
Эта строка присутствует в обработчике событий
Int indexval = Convert.ToInt32(e.commandArgument.ToString());
Я также попробовал это, чтобы получить индекс строки. Внутри страницы aspx:
commandArgument= <%#container.DataItem%>
Но это также возвращает пустую строку. Пытался так в событии rowcommand.
Gridview gr = (gridview)sender;
Int Ind = gr.rows.selectedIndex.
Здесь значение Ind показано как -1
Есть несколько вопросов по этому вопросу, но все они находятся на VB.net. Я хочу, чтобы решение этой проблемы было в C#.
PS я новичок в C# и asp.net
1 ответ
Я использую CommandField
Добавьте этот CommandField к вашему GridView <Columns>...</Columns>
<asp:CommandField ShowSelectButton="true" SelectText="View/Edit" ItemStyle-Width="60" />
Это связано с GridView_SelectedIndexChanging
который дает вам RowIndex:
protected void gvCategories_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
int rowIndex = e.NewSelectedIndex;
}