ASP.NET GridView RowIndex как CommandArgument

Как вы можете получить доступ и отобразить индекс строки элемента gridview в качестве аргумента команды в кнопке столбца кнопки?

   ..... 

Вот очень простой способ:

  

MSDN говорит, что:

Класс ButtonField автоматически заполняет свойство CommandArgument соответствующим значением индекса. Для других командных кнопок вы должны вручную установить свойство CommandArgument командной кнопки. Например, вы можете установить CommandArgument в <% # Container.DataItemIndex%>, если элемент управления GridView не имеет пейджинга.

Поэтому вам не нужно устанавливать его вручную. Затем команда row с GridViewCommandEventArgs сделает ее доступной; например

 protected void Whatever_RowCommand( object sender, GridViewCommandEventArgs e ) { int rowIndex = Convert.ToInt32( e.CommandArgument ); ... } 

Вот предложение Microsoft для этого http://msdn.microsoft.com/en-us/library/bb907626.aspx#Y800

В gridview добавьте командную кнопку и преобразуйте ее в шаблон, а затем дайте ей имя команды в этом случае « AddToCart », а также добавьте CommandArgument « Контейнер <% # ((GridViewRow)) .RowIndex%>“

      

Затем для создания в событии RowCommand gridview укажите, когда запускается команда «AddToCart», и делайте то, что вы хотите оттуда

 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "AddToCart") { // Retrieve the row index stored in the // CommandArgument property. int index = Convert.ToInt32(e.CommandArgument); // Retrieve the row that contains the button // from the Rows collection. GridViewRow row = GridView1.Rows[index]; // Add code here to add the item to the shopping cart. } } 

** Одна ошибка, которую я делал, заключается в том, что я хотел добавить действия на кнопку шаблона вместо того, чтобы делать это непосредственно на RowCommand Event.

Я думаю, это сработает.

      
 void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { Button b = (Button)e.CommandSource; b.CommandArgument = ((GridViewRow)sender).RowIndex.ToString(); } 

Я обычно связываю эти данные с помощью события RowDatabound с GridView:

 protected void FormatGridView(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { ((Button)e.Row.Cells(0).FindControl("btnSpecial")).CommandArgument = e.Row.RowIndex.ToString(); } } 
      

Это традиционный способ и последняя версия asp.net framework с строгими типизированными данными, и вам не нужно использовать в качестве строки, например, «EMPID»,

  

внутри обработчика событий:

 Protected Sub LnkBtn_Click(ByVal sender As Object, ByVal e As EventArgs) dim rowIndex as integer = sender.Attributes("RowIndex") 'Here you can use also the command argument for any other value. End Sub 
  • GridView с двумя столбцами, шириной заливки
  • Android: Как GridView auto_fit находит количество столбцов?
  • Пересечение столбцов GridLayoutManager Android Recyclerview
  • Как реализовать выбор полной строки в GridView без кнопки выбора?
  • Добавление заголовка в GridView (Android)
  • разделители / разделители строк сетки андроида
  • Получить индекс Row в событии Rowcommand от Asp.net
  • Получить значения DataKey в GridView RowCommand
  • GridView связан с свойствами вложенного classа
  • Преобразование DBContext в ObjectContext для использования с GridView
  • Как скрыть столбцы в ASP.NET GridView с автогенерированными столбцами?
  • Interesting Posts

    Доступ к файлам свойств программно с помощью Spring?

    Свяжите расширение файла с приложением в Snow Leopard

    Обработка исключительных ситуаций ASP.NET Core Web API

    Как передать данные json POST в метод Web API как объект?

    Ошибка: существует табличное пространство для таблицы xxx. Пожалуйста, ОТКРЫВАЙТЕ табличное пространство до ИМПОРТА

    Низкая загрузка и производительность Windows

    Внутренние динамики для ноутбука работают, но не внешние

    Добавить панель инструментов в нижней части заголовка с помощью jqgrid

    Force Windows использует .EXE для PATH вместо внутренней команды CMD.EXE

    WinWord.exe не выйдет после вызова Word.Documents.Add – Word .NET Interop

    Включена ли новая функция инициализации члена C ++ 11 при объявлении, что списки инициализации устарели?

    Bootstrap 3 Свернуть

    Как добавить элементы в spinner в Android?

    Является ли R применимым к семейству больше, чем синтаксический сахар?

    Ошибка «Исходный файл не может быть прочитана» при загрузке файла с помощью Firefox

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