Como: Responder a eventos de botão em um controle GridView
Quando um botão for clicado em um GridView controle, o RowCommand evento é gerado. The GridView controle tem funcionalidade interna para operações, sistema autônomo edição, excluir e paginação. Você também pode adicionar botões e usar o RowCommand evento para adicionar funcionalidade personalizada ao controle.
Você pode adicionar funcionalidade personalizada a um GridView controle das seguintes maneiras:
Adicionando um ButtonField campo para o GridView controle.
Adicionando um Button, LinkButton, ou ImageButton controles para um modelo na GridView controle.
Você pode usar o CommandName propriedade do argumento de evento para identificar a função do botão no método do manipulador de eventos. Se você estiver trabalhando com ButtonField ou TemplateField objetos, você também pode usar o CommandArgument propriedade para identificar a linha corrente. Quando você estiver usando um ButtonField objeto, o CommandArgument propriedade é conjunto automaticamente para o índice da linha. Quando você estiver usando um TemplateField objeto, o CommandArgument propriedade não é definida automaticamente pelo controle. Nesse caso, se você precisar determinar o índice da linha na manipulador de eventos, você pode conjunto o CommandArgument propriedade do botão para o índice da linha usando uma expressão de vinculação de dados.
conjunto CommandNamepropriedade para uma seqüência de caracteres que identifica sua função, sistema autônomo "Imprimir" ou "Copiar".
Se você estiver usando o TemplateField objeto e precise acessar o índice da linha no manipulador de eventos método, conjunto o botão CommandArgument propriedade para uma expressão que identifica a linha corrente.
O exemplo a seguir mostra como você pode conjunto o CommandArgument propriedade de um botão em um TemplateField coluna para o índice da linha corrente. No exemplo, a coluna contém um Button controle que exibe um carrinho de compras.
<asp:TemplateField> <ItemTemplate> <asp:Button ID="AddButton" CommandName="AddToCart" CommandArgument="<%# CType(Container,GridViewRow).RowIndex %>" Text="Add to Cart" /> </ItemTemplate> </asp:TemplateField>
<asp:TemplateField> <ItemTemplate> <asp:Button ID="AddButton" CommandName="AddToCart" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" Text="Add to Cart" /> </ItemTemplate> </asp:TemplateField>
Crie um método para o RowCommand evento da GridView controle. No método, faça o seguinte:
Verifique a propriedade CommandName do objeto de evento-argumento para ver se a sequência de caracteres foi passada.
Recuperar o índice da linha que contém o botão usando o CommandArgument propriedade, se necessário.
Execute a lógica apropriada para o botão que o usuário clicou.
O exemplo a seguir mostra como você pode responder ao clique de um botão de um controleGridView.No exemplo, um botão em um TemplateFieldcoluna envia o comando "AddToCart". The RowCommand evento manipulador determina qual botão foi clicado. Se fosse o botão de carrinho de compras, o código executa a lógica apropriada.
Protected Sub GridView1_RowCommand(ByVal sender As Object, _ ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) If (e.CommandName = "AddToCart") Then ' Retrieve the row index stored in the CommandArgument property. Dim index As Integer = Convert.ToInt32(e.CommandArgument) ' Retrieve the row that contains the button ' from the Rows collection. Dim row As GridViewRow = GridView1.Rows(index) ' Add code here to add the item to the shopping cart. End If End Sub
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. } }
Para obter um exemplo que usa o ButtonField classe, consulte o GridView.RowCommand documentação do evento.
Como: Responder a eventos de botão em DataList ou Repeater itens