Получить индекс 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 связан с свойствами вложенного classа
  • Добавление заголовка в GridView (Android)
  • Простой пример сетки Android, использующий RecyclerView с GridLayoutManager (например, старый GridView)
  • Lazy загружает изображения в gridView
  • добавление текстового интерфейса для перетаскивания - Android / Java
  • Сортировка GridView: SortDirection всегда по возрастанию
  • Как получить значение ячейки по имени столбца не по индексу в GridView в asp.net
  • ASP.NET GridView RowIndex как CommandArgument
  • Преобразование DBContext в ObjectContext для использования с GridView
  • Полная обратная передача, вызванная LinkButton внутри GridView внутри UpdatePanel
  • Как удалить строку из GridView?
  • Interesting Posts

    WPF: отобразить значение bool как «Да» / «Нет»

    psql: не удалось подключиться к серверу: нет такого файла или каталога (Mac OS X)

    Перетаскивание UIView внутри UIScrollView

    Установите Windows 7 с USB-накопителя

    Обнаружение горизонтальной линии с помощью OpenCV

    Почему массивы ссылок являются незаконными?

    Как восстановить неисправный внешний жесткий диск от Time Machine?

    Является ли мой MAC-адрес общедоступным при просмотре Интернета?

    Что происходит, когда дублирующий ключ помещается в HashMap?

    Добавление двух значений в функцию Sass создает двойной экземпляр ‘px’

    Как вы держите DVD-привод от открытия, когда вы получаете сообщение «пожалуйста, вставьте диск в дисковод»?

    Могут ли Robocopy отслеживать файлы с увеличением времени менее одной минуты?

    Как использовать две или более базы данных с весной?

    Где находится VBA Debug.Print?

    Получить направление (компас) с двумя точками долготы / широты

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