Получить индекс Row в событии Rowcommand от Asp.net

У меня есть asp.net Gridview.

  <asp:ImageButton ID="imgBtn1" CssClass="SelectRow" runat="server" CausesValidation="false" CommandArgument='' CommandName="ViewFactors" ImageUrl="~/tadarokat/Images/factor.png" Text="" />   

Как я могу получить rowIndex в событии команды row?
Я хочу выделить (выбрать) целевую строку при запуске Rowcommand.

это ответ на ваш вопрос.

 GridViewRow gvr = (GridViewRow)(((ImageButton)e.CommandSource).NamingContainer); int RowIndex = gvr.RowIndex; 

ImageButton \ Button и т. Д.

 CommandArgument='<%# Container.DataItemIndex%>' 

фоновый код

 protected void gvProductsList_RowCommand(object sender, GridViewCommandEventArgs e) { int index = e.CommandArgument; } 

если вы создали команду gridview, например insert, update delete, в команде row вы можете получить код строки, чтобы получить индекс.

  int index = Convert.ToInt32(e.CommandArgument); 

Или вы можете использовать class control вместо своих типов:

 GridViewRow row = (GridViewRow)(((Control)e.CommandSource).NamingContainer); int RowIndex = row.RowIndex; 
  protected void gvProductsList_RowCommand(object sender, GridViewCommandEventArgs e) { try { if (e.CommandName == "Delete") { GridViewRow gvr = (GridViewRow)(((ImageButton)e.CommandSource).NamingContainer); int RemoveAt = gvr.RowIndex; DataTable dt = new DataTable(); dt = (DataTable)ViewState["Products"]; dt.Rows.RemoveAt(RemoveAt); dt.AcceptChanges(); ViewState["Products"] = dt; } } catch (Exception ex) { throw; } } protected void gvProductsList_RowDeleting(object sender, GridViewDeleteEventArgs e) { try { gvProductsList.DataSource = ViewState["Products"]; gvProductsList.DataBind(); } catch (Exception ex) { } } 

Я смог использовать ответ rahularyansharma выше в моем собственном проекте с одной незначительной модификацией. Мне нужно было получить значение конкретных ячеек в строке, на которую пользователь щелкает ссылку LinkButton. Вторая строка может быть изменена, чтобы получить значение как можно большего количества ячеек. Вот мое решение:

  GridViewRow gvr = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer); string typecore = gvr.Cells[3].Text.ToString().Trim(); 
  • Как отключить прокрутку GridView в Android?
  • Добавление заголовка в GridView (Android)
  • Пересечение столбцов GridLayoutManager Android Recyclerview
  • Преобразование DBContext в ObjectContext для использования с GridView
  • Столбцы двух связанных таблиц базы данных в одном ASP.NET GridView с EntityDataSource
  • Как добавить параметр «подтвердить удаление» в ASP.Net Gridview?
  • Создать миниатюру
  • Простой пример сетки Android, использующий RecyclerView с GridLayoutManager (например, старый GridView)
  • добавление текстового интерфейса для перетаскивания - Android / Java
  • Сетка изображений внутри ScrollView
  • Сортировка GridView: SortDirection всегда по возрастанию
  • Interesting Posts

    Как конвертировать HTML в PDF с помощью iTextSharp

    Заполните область между двумя линиями, сглаженными лессой, в R с ggplot

    Knockout.js без контейнера «foreach» не работает с

    Можем ли мы иметь рекурсивные macros?

    Как изменить папку загрузки по умолчанию в Chrome?

    Что такое i = (i, ++ i, 1) + 1; делать?

    Устанавливает ли «Mount volume в качестве съемного носителя» вероятность повреждения данных с помощью зашифрованного USB-жесткого диска TrueCrypt?

    Как сделать загрузчик Windows по умолчанию?

    Какая утилита может переместить мой загрузочный раздел Windows на другой жесткий диск?

    Java Singleton и синхронизация

    Проблема с файловым перезаписыванием файлов вместо добавления в конец

    как проектировать любой размер экрана и плотность в Android (многоэкранный режим для мобильных телефонов в Android)

    ConcurrentModificationException для ArrayList

    Firebase Cloud Messaging разные ключи

    Node async loop – как сделать этот код запущенным в последовательном порядке?

    Давайте будем гением компьютера.