Строка аргумента команды пуста в событии rowcommand С#

У меня есть вид сетки. Внутри него у меня есть кнопка ссылки. Я хочу получить индекс строки кнопки, которая была нажата внутри обработчика событий 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. Я хочу, чтобы решение было на С#.

PS Я новичок в С# и asp.net


person Kiraak    schedule 15.06.2017    source источник


Ответы (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;
}
person Ortund    schedule 15.06.2017