Два столбца кнопки в элементе управления GridView - PullRequest
1 голос
/ 16 июня 2010

У меня в виде сетки будут две разные колонки кнопок. Я хочу выполнить другое действие в зависимости от того, какую кнопку нажимает пользователь. Как в событии SelectedIndexChanged определить, какой столбец был нажат. Это код, который я использую для генерации столбцов.

grdAttachments.Columns.Clear();
ButtonField bfSelect = new ButtonField();
bfSelect.HeaderText = "View";
bfSelect.ButtonType = ButtonType.Link;
bfSelect.CommandName = "Select";
bfSelect.Text = "View";

ButtonField bfLink = new ButtonField();
bfLink.HeaderText = "Link/Unlink";
bfLink.ButtonType = ButtonType.Link;
bfLink.CommandName = "Select";
bfLink.Text = "Link";

grdAttachments.Columns.Add(bfSelect);
grdAttachments.Columns.Add(bfLink);

Ответы [ 2 ]

2 голосов
/ 16 июня 2010

Думаю, будет полезно, если вы дадите кнопкам различные свойства CommandName.

Вот пример MSDN чтения CommandName в событии GridView_RowCommand, в котором конкретно упоминается ситуация с несколькими кнопками:

  void CustomersGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
  {

    // If multiple ButtonField column fields are used, use the
    // CommandName property to determine which button was clicked.
    if(e.CommandName=="Select")
    {

      // Convert the row index stored in the CommandArgument
      // property to an Integer.
      int index = Convert.ToInt32(e.CommandArgument);    

      // Get the last name of the selected author from the appropriate
      // cell in the GridView control.
      GridViewRow selectedRow = CustomersGridView.Rows[index];
      TableCell contactName = selectedRow.Cells[1];
      string contact = contactName.Text;  

      // Display the selected author.
      Message.Text = "You selected " + contact + ".";

    }

  }
0 голосов
/ 22 января 2014
string commandName = e.CommandName.ToString().Trim();
  GridViewRow row = GridView1.Rows[Convert.ToInt32(e.CommandArgument)];
  switch (commandName)
  {
      case "showName":                   
          LClickName.Text = "You Clicked Show Name Button : \"" + row.Cells[1].Text + "\"";                   
          break;
      case "EditName":                   
          LClickName.Text = "You Clicked Edit Name Button : \"" + row.Cells[1].Text + "\"";                  
          break;
      default: break;
  }

Вот пример кнопки множественного выбора в One Gridview

Кнопка множественного выбора в одном окне

...