Trabalhando com GridView e RowCommand


por Mauricio Junior em 1/1/2011 0

        Olá pessoal, hojequero mostrar uma coisa bem simples e precisa. Por ser tão simples, existempessoas que não prestam atenção e a funcionalidade acaba não funcionando. Otrabalho com GridView é bem legal, isto é, ajuda muito o desenvolvedor efunciona bem. Antigamente, para o povo de ASP 3.0; toda tabela era programadamanualmente e agora o pessoal usa um componente funcional com pequenas linhasde código.

 

Referência:

Ferramenta:Visual Studio .NET 2008

Linguagem C#.NET

Plataforma: Web

Nível: Iniciante

 

         O objetivo desse artigo é mostrar comoutilizar o RowCommand com GridView. Mostro como apenas deletar um dado do bancode dados clicando no botão dentro do grid.

 

 

<asp:GridView ID="gridUsuario" runat="server" Width="100%"

                    AutoGenerateColumns="false" onrowcommand="gridUsuario_RowCommand">

                <Columns>

                    <asp:BoundField DataField="NO_USUARIO" HeaderText="Usuário" />

                    <asp:BoundField DataField="NO_SISTEMA" HeaderText="Sistema" />

                    <asp:BoundField DataField="CH_AUTENTICACAO" HeaderText="Id" />

                    <asp:ButtonField ButtonType="Image" CommandName="Delete"

                    ImageUrl="~/App_Themes/Padrao/image/fechar.jpg"

                    ControlStyle-Width="15" HeaderText="Excluir"/> 

                </Columns>

               </asp:GridView>

 

Code 1.1

 

         A primeira coisa é gerar o grid com oscampos que preciso para aparecer na tabela. A tag <asp:BoudField> é umcampo normal. Dentro este campo, existe a propriedade chamada DataField cujocoloquei o nome que veio do meu banco de dados, ou seja, da tabela do meu bancode dados. Note que para cada campo eu fiz a mesma coisa, só o último que não. Éum pouco diferente.

         Depois disto, note que no início do<asp:GridView> existe uma propriedade chamada onRowCommand com o valor“gridUsuario_RowCommand”. Porque ele colocou esse valor? Porque o Id doGridView chama “gridUsuario” com isso, o software atribui automaticamente o nome“underline” o comando que, no nosso caso é RowCommand.

         Para atribuir este OnRowCommand énecessário mudar a aba na apresentação para Design ou Split. Automaticamenteaparecerá o grid. (Imagem 1)

 

Imagem 1

 

         Depois de selecionado acessei aspropriedades e cliquei em Events. (Imagem 2)

Imagem 2

 

         Selecionei a Ação RowCommand clicandoduas vezes. Automaticamente foi criado o nome gridUsuarioRowCommand. Dessa forma, no grid foi acrescentado aquelalinha de comando. [onrowcommand="gridUsuario_RowCommand]

         Além disso, um método foi criado. (Code2)

 

 

protected void gridUsuario_RowCommand(object sender, GridViewCommandEventArgs e)

{}

Code 2

         Voltando para a página de apresentação,criei um novo campo para armazenar uma imagem com função de botão. (Code 3)

 

 

<asp:ButtonField ButtonType="Image" CommandName="Delete"

                    ImageUrl="~/App_Themes/Padrao/image/fechar.jpg"

                    ControlStyle-Width="15" HeaderText="Excluir"/>

 

Code 3

 

         Coloquei o tipo debotão com a propriedade ButtonType e o valor Image. Depois informei o nome docomando que será executado, CommandName=”Delete”. Escolhi para aparecer umaimagem em vez de aparecer um texto, caso queira deixar deixar um texto, não temproblema algum. Para finalizar coloquei o nome do título da coluna chamada“Excluir”. Aquele título que fica lá em cima.

         É lógico que não parou por ai, agorapreciso colocar o código principal para que depois de acionado o clique executeo comando Delete. (Code 4)

 

 

protected void gridUsuario_RowCommand(object sender, GridViewCommandEventArgs e)

        {

            if (e.CommandName == "Delete")

            {

                int index = int.Parse((string)e.CommandArgument);

                string chaveDelete = gridUsuario.Rows[index].Cells[2].Text;

 

                _usuario.deleteUsuario(Convert.ToInt32(chaveDelete));

                Response.Redirect("manterusuario.aspx");

            }

        }

 

Code 4

 

         A primeira coisa foi perguntar se essecomando é igual a “Delete”, se for igual, com o mesmo argumento, pego o indexreferente a linha selecionada. A linha selecionada precisa ser identificadapara saber qual a linha preciso deletar. A minha chave principal está na coluna2, ou seja, a chave da tabela de dados.

         Com o index selecionado, basta pegar ovalor do texto na coluna 2. (Code 5)

 

 

string chaveDelete = gridUsuario.Rows[index].Cells[2].Text;

 

Code 5

 

         Depois de pegar ovalor correto que preciso, só chamei o método de negócio passando os parâmetrose redirecionei para a mesma página. (Code 6)

 

 

            _usuario.deleteUsuario(Convert.ToInt32(chaveDelete));

            Response.Redirect("manterusuario.aspx");

 

Code 6

 

         Além disso, você pode colocar mensagensde confirmação e tudo mais. Fica ai uma dica para incrementar. O resultadofinal é esse. (Imagem 3)

 

Imagem 3

 

         Como as informações são confidenciais,escolhi riscá-las.

         Não falei como conectar no banco dedados nem nada, só quis mostrar como deixar funcionando o uso do componentegridView com o comando RowCommand. As questões com o banco de dados de select edelete é com você.

Espero que tenha gostadoqualquer coisa só entrar em contato pelo site.

voltar   comente  subir

 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:

Comente (dê sua opinião):
Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Desenvolvendo com camadas utilizando C#
Sistema ASP 3.0 utilizando 3 camadas – Parte 2
Abrindo Janela de Forma Modal
Dados via Post no VS 2005
Vídeos SQL Server 2005 Express Gratuitamente
Trabalhando com o componente TabContainer
Sistema Calcula IMC e IGC no Celular
Emulando o Windows Phone 7 em seu celular
Dica: Pegar extensão, nome do arquivo e pasta
SQL Server 2005 SP2 já está disponível :)
Visual Studio Toolbox Performance
Visual SourceSafe
Vídeo HTC
Adicionar uma coluna em um DataTable
Novo iGas 2.0 Mobile
Microsoft Research Laptop Multi-Touch
Certificação - Segunda Chance
Vídeo - Teste do Windows 7 RC
Visual Source Safe - Série 1
Pagamento via celular
Vídeo do Visual SourceSafe - Parte I
Chama método que está dentro do COM PLUS (COM +)
Criar gráfico na web de forma fácil
ASP.NET 4.0 and Visual Studio 2010 Web Development Beta 2 Overview
Moving to Visual Studio 2010 e-Book
Orientação a Objetos com Visual Studio.NET (parte 2)
Educação no Brasil
Criptografia de String de Conexão no Web.Config
Dicas para programar melhor
Como utilizar CSS no VS 2003
Documento padrão de desenvolvimento
Cookies
Sair da tela clicando ESC no Windows Forms
Fazer Log, precisa ou não precisa?
Criando uma aplicação de uma maneira nova para melhor publicação