2010-06-16 3 views
1

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

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

Я думаю, что это поможет, если вы дать кнопкам различные свойства CommandName.

Вот MSDN example чтения 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

Спасибо, я нашел этот ответ, после того как вы больше искали. Bob –

0
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; 
    } 

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

Multiple Select Button In One Gridview

Смежные вопросы