Busca Online:
 

Seja bem vindo(a) Visitante, voc no est logado deseja logar
na comunidade ASPNETi.COM e participar de servios e promoes ? clique aqui.

Trabalhando com GridView e DataKeyNames com Várias Chaves



Data Publicação: 26/5/2010 10:22:44
Total de visualizações: 966

comente
Diminuir o tamanho das letras Aumentar o tamanho das letras


        Olá Internautas, hoje gostaria de falar um pouco sobre o preenchimento de um GridView utilizando DataKeyNames com várias chaves.

Requisitos:
Visual Studio .NET 2008
Framework 3.5
Linguagem C#

    O que quer dizer esse: com várias chaves? Quero dizer e falar da possibilidade da tabela de banco de dados ter mais de uma chave necessária para fazer update e delete. Existe apenas uma diferença entre os artigos publicados anteriormente com este. Segue abaixo os artigos anteriores.

- Trabalhando com GridView e RowCommand (http://aspneti.com/trabalhando+com+GridView+e+RowCommand+812,0.aspx)

- Trabalhando com GridView, RowCommand e DataKeysNames (http://aspneti.com/Trabalhando+com+GridView+RowCommand+e+DataKeysNames+813,0.aspx)

    Nestes artigos publicados acima, utilizei apenas um DataKeyNames dentro do GridView. Neste artigo, vou colocar mais de uma chave para poder pegar depois e atualizar a tabela de banco de dados.  É um cadastro simples (figura 1.1)



    O código é simples: Referência 1.2



<asp:GridView ID="gridProdutoAgencia" runat="server"
                                AutoGenerateColumns="false" DataKeyNames="prdCodigo, banCod, ageCod"
                                onrowcommand="gridProdutoAgencia_RowCommand">
                            <Columns>
                                <asp:BoundField DataField="prdCodigo" HeaderText="Cód." />
                                <asp:BoundField DataField="banCod" HeaderText="Cod. Banco" />
                                <asp:BoundField DataField="ageCod" HeaderText="Cód. Agência" />
                                <asp:BoundField DataField="pabTempoExpurgo" HeaderText="Tempo" />
                                <asp:BoundField DataField="pabSituacao" HeaderText="Situação" />
                                <asp:BoundField DataField="pabIndValidaCod2d" HeaderText="Valida Código 2D" />
                                <asp:BoundField DataField="pabIndValidaImagem" HeaderText="Valida Imagem" />
                                <asp:ButtonField ButtonType="Link" CommandName="Ativar" HeaderText="Ativar" Text="Ativar" />
                                <asp:ButtonField ButtonType="Link" CommandName="Inativar" HeaderText="Inativar" Text="Inativar" />
                                <asp:ButtonField ButtonType="Link" CommandName="Delete" HeaderText="Delete" Text="Delete" />
                            </Columns>
                        </asp:GridView>

Referência: 1.2

    Na linha 3 do código de referência 1.2 mostra que coloquei a chave separada por vírgula, ou melhor, mais de uma chave do banco.

 
 DataKeyNames="prdCodigo, banCod, ageCod"


Referência: 1.3
    Para pegar estas chaves, funciona de forma simples e direta. A Microsoft facilitou muito a nossa vida com essa funcionalidade. Dentro do RowCommand é simples pegar os valores colocados. Em outros eventos estes valores podem ser pegos facilmente, mas com este artigo, mostro com o RowCommand. Veja como pegar. (Referência 1.4)


protected void gridProdutoAgencia_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                if (e.CommandName == "Delete")
                {
                    int index = int.Parse((string)e.CommandArgument);
                    ProdutoAgenciaBancoClienteDTO dto = new ProdutoAgenciaBancoClienteDTO();
                    dto.BanCod = gridProdutoAgencia.DataKeys[index]["banCod"].ToString();
                    dto.AgeCod = gridProdutoAgencia.DataKeys[index]["ageCod"].ToString();
                    dto.PrdCodigo = gridProdutoAgencia.DataKeys[index]["prdCodigo"].ToString();

                    if (_produtoAgenciaBancoClienteBRL.deleteProdutoAgenciaBancoCliente(dto))
                    {
                        Response.Redirect("CadastroProdutoAgenciaCliente.aspx");
                    }
                }
            }
            catch (Exception ex)
            {
                lblErro.Text = ex.Message.ToString();
            }
        }

Referência: 1.4

    O código que está em anexo atribui as chaves para dentro de uma dto instanciada. (Referência 1.5)



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

gridProdutoAgencia.DataKeys[index]["banCod"].ToString();
gridProdutoAgencia.DataKeys[index]["ageCod"].ToString();
gridProdutoAgencia.DataKeys[index]["prdCodigo"].ToString();

Referência: 1.5

    O primeiro passo é pegar o index com o e.CommandArgument e depois usar a variável com o DataKeys. Com isso você pode atribuir para qualquer outra variável para atualização, deleção ou outra coisa.

Bom, eu fico por aqui e espero que você tenha entendido a singela explicação.
Qualquer dúvida, pode entrar em contato pelo site.

Mauricio Junior – www.mauriciojunior.org / blog.mauriciojunior.org


Total de visualizações: 966
voltar   comente  subir


Comentários:


Comente (dê sua opinião): VOCÊ PRECISA LOGAR

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

Criando Splash - Com Efeito
Sistema de Login em ASP – Parte 10
Justiça isenta Itaú por captura de senha de correntista
User Control Windows executando no Internet Explorer (parte 1 de 2)
Podcast da Comunidade ASPNETi.COM publicada no iTunes
OpenWave SDK 6.2.2
Pedido de desculpas
Validator no VS 2005
Vídeo - Serviços do Windows Live
ASPNETi no seu celular
Focus()
Países que acessaram o aspneti.com
Projeto Natal mostrado na Tech D8
Registro Encontro .NET (Fotos)
Artigo Criando RSS Xml para o Seu Próprio Site
Append Data Bound Items
Ler RSS usando o Visual Studio.NET 2005
Framework SkyMenu
Channel9 - Soap, OData, Json
E-mail Carta de Amor - Vírus
Que ironia do destino
Vídeo - Themes/Skin/Stylo
Trabalhando com GridView, RowCommand e DataKeysNames
Integração é necessário
Seria o novo Windows Mobile 7 ?
Orientação a Objetos com Visual Studio.NET (parte 2)
Concurso Office
Web 2.0 - A máquina somos nós
Themas - Muito Simples
Dispositivos inteligentes a caminho da sua casa
Criando Teclas de Atalho no Windows Form
TV e Internet, um casamento perfeito
Mais um Windows Phone 7
Teclas de atalho - Visual Studio .NET 2005
O futuro da tecnologia com a Microsoft
Sobre o Autor
  [sumir] [aparecer]
 
Mauricio Junior Maurício Júnior
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 27 anos e possuo sete livros publicados pela editora Ciência Moderna no ano de 2009. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.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.orgSite pessoal  www.mauriciojunior.org

Informaes Online
Usurios Online: 732
Artigos:  750
Vdeos:  61
PodCast's:  45
Frum:  3128
Empregos:  1385
Usurios Cadastrados: 6166
Publicidade
LAYERDEV




Vdeos Publicados
 

Duas dicas de internet - Google RealTime e OpenDNS

Desconfie sempre da internet e emails

Microsoft Office online no Safari funcionando

Inovação Visual Studio .NET 2010 - parte 4

Office Live online

TAB TAB na ferramenta Visual Studio .NET

Apresentação do IMC - Sistema de Controle de Peso Mobile

Inovação Visual Studio .NET 2010 - parte 3

Inovação Visual Studio .NET 2010 - parte 1

Download de vídeos com o Safari

Criando Chart - Novo componente integrado com o Visual Studio.NET 2010

Serviços: SAC e SMS integrado

Café com TI - Info sobre o Visual Studio.NET 2010 - WebConfig

Café com TI - Info sobre o Visual Studio.NET 2010

Café com TI - Vírus se passando por Correios

Café com TI - Novo jeito de mandar e-mail com vírus

Café com TI - Formatando todo tipo de String

Resolvido erro do Banco do Brasil no browser

Erro no site do Banco do Brasil com o Safari

Duas dicas do Snow Leopard

Incompatibilidade no Snow Leopard

E-mail com vírus, veja os detalhes

Café com TI - Continuando a configuração de Themes no site

Café com Ti - Banner Rotativo

Café com TI - Evento Eco Brasília

Café com TI - Themes dentro do ASPNETi.COM

Café com TI - Trabalhando com o iCal no Macbook

Café com TI - Deixando o rodapé do seu site fixo

Café com TI - Windows 7 sendo utilizado sem qualquer incompatibilidade

Café com Ti - ASP.NET - Explicando o componente ModalDialogExtender do Ajax Toolkit

Café com TI - Indexação de URL com ASP.NET

Café com TI - Configurando Mail para sua conta no HotMail
Enquete ASPNETi.COM
 Os podcasts tem sido proveitoso pra você?

Favor logar para votar
 
Publicidade Vertical
NETITC