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.

GridView Parte II



Data Publicação: 5/3/2006 17:35:11
Total de visualizações: 14510

comente
Diminuir o tamanho das letras Aumentar o tamanho das letras


Visual Studio.NET 2005

 

 

Olá pessoal, estarei aqui para mostrar como editar montando o método RowEditing e RowUpdating. De certa forma é bem simples e legal de usar. Em um projeto web que fiz para um banco, tive que guardar como controle os dados antes de ser mudados, ou seja, tive que pegar os dados anteriores e os dados atuais editados pelo usuário para gravar em uma tabela de controle e log.

 

Bom, essa é uma continuação da parte I, se ainda não leu, por favor, leia e entenda como foi feito anteriormente. Nessa parte anterior, mostrei como preencher o GridView, veja como ficou. (2.1 GridView Parte II)

 

Referência: 2.1 GridView Parte II

 

Explicação:

Entro com os dados e clico no botão “Salvar”, o GridView mostra os dados que foram gravados no banco de dados. Muito simples e fácil para desenvolver.

 

Editar

 

Quando for editar os campos do meu GridView, deve ser feito antes de tudo o html para saber quais os campos serão editados. No meu caso, defini todos os meus campos do Grid para serem editados.

 

 

<Columns>

                                                                <asp:TemplateField ShowHeader="false">

                                                                    <ItemTemplate>

                                                                        <asp:Label Visible="false" ID="lblIdCooperativa" runat="server">

                                                                            <%# DataBinder.Eval(Container.DataItem, "IdCooperativa")%>

                                                                        </asp:Label>

                                                                    </ItemTemplate>

                                                                     <EditItemTemplate>

                                                                         <asp:TextBox Visible="false" ID="txtIdCooperativa" runat="server"

                                                                        Text='<%# DataBinder.Eval(Container.DataItem, "IdCooperativa") %>'>

                                                                        </asp:TextBox>

                                                                    </EditItemTemplate>

                                                                </asp:TemplateField>

                                                                <asp:TemplateField HeaderText="NR COOP">

                                                                    <ItemTemplate>

                                                                        <asp:Label ID="lblNumCooperativa" runat="server">

                                                                            <%# DataBinder.Eval(Container.DataItem, "NumCooperativa")%>

                                                                        </asp:Label>

                                                                    </ItemTemplate>

                                                                     <EditItemTemplate>

                                                                        <asp:TextBox ID="txtNumCooperativa" runat="server"

                                                                            Text='<%# DataBinder.Eval(Container.DataItem, "NumCooperativa") %>'>

                                                                        </asp:TextBox>

                                                                    </EditItemTemplate>

                                                                </asp:TemplateField>

                                                                <asp:TemplateField HeaderText="BANCO DE DADOS">

                                                                    <ItemTemplate>

                                                                        <asp:Label ID="lblInitialCatalog" runat="server">

                                                                            <%# DataBinder.Eval(Container.DataItem, "InitialCatalog") %>

                                                                        </asp:Label>

                                                                    </ItemTemplate>

                                                                    <EditItemTemplate>

                                                                        <asp:TextBox ID="txtInitialCatalog" runat="server"

                                                                            Text='<%# DataBinder.Eval(Container.DataItem, "InitialCatalog") %>'>

                                                                        </asp:TextBox>

                                                                    </EditItemTemplate>

                                                                </asp:TemplateField>

                                                               <asp:TemplateField ShowHeader="true" HeaderText="SERVIDOR">

                                                                    <ItemTemplate>

                                                                        <asp:Label ID="lblDataSource" runat="server">

                                                                            <%# DataBinder.Eval(Container.DataItem, "DATASOURCE") %>

                                                                        </asp:Label>   

                                                                    </ItemTemplate>

                                                                    <EditItemTemplate>

                                                                        <asp:TextBox ID="txtDataSource" runat="server"

                                                                        Text='<%# DataBinder.Eval(Container.DataItem, "DATASOURCE") %>'>

                                                                        </asp:TextBox>

                                                                    </EditItemTemplate>

                                                                </asp:TemplateField>                                                          

                                                               <asp:TemplateField ShowHeader="true" HeaderText="AMBIENTE">

                                                                    <ItemTemplate>

                                                                        <asp:Label ID="lblIdAmbiente" runat="server">

                                                                            <%# DataBinder.Eval(Container.DataItem, "IdAmbiente") %>

                                                                        </asp:Label>   

                                                                    </ItemTemplate>

                                                                    <EditItemTemplate>

                                                                        <asp:TextBox ID="txtIdAmbiente" runat="server"

                                                                        Text='<%# DataBinder.Eval(Container.DataItem, "IdAmbiente") %>'>

                                                                        </asp:TextBox>

                                                                    </EditItemTemplate>

                                                                </asp:TemplateField>

                                                               

                                                                <asp:CommandField ButtonType="Button" CancelText="C" DeleteText="D" EditText="E" HeaderText="A&#199;&#195;O"

                                                                        InsertVisible="False" ShowDeleteButton="true" ShowEditButton="True" UpdateText="A" />

                                                            </Columns>

Referência: 2.2 GridView Parte II

 

 

Dentro da tag <Columns> existem as tags <ItemTemplate> e <EditItemTemplate>. (Referência 2.3 GridView Parte II)

 

 

<asp:TemplateField ShowHeader="false">

                                                                    <ItemTemplate>

                                                                        <asp:Label Visible="false" ID="lblIdCooperativa" runat="server">

                                                                            <%# DataBinder.Eval(Container.DataItem, "IdCooperativa")%>

                                                                        </asp:Label>

                                                                    </ItemTemplate>

                                                                     <EditItemTemplate>

                                                                         <asp:TextBox Visible="false" ID="txtIdCooperativa" runat="server"

                                                                        Text='<%# DataBinder.Eval(Container.DataItem, "IdCooperativa") %>'>

                                                                        </asp:TextBox>

                                                                    </EditItemTemplate>

                                                               

Referência: 2.3 GridView Parte II

 

Todo campo de dentro da Tag <EditItemTemplate> existe um textbox onde o mesmo pode ser alterado ou editado.Para não ter um campo editado, é só tirar a tag <EditItemTemplate> com todo o seu conteúdo.

 

Cliquei no mode design, selecionei o GridView, logo depois em propriedades e no campo Events. Esse componente mudou um pouco em relação ao antigo DataGrid. Agora o modo para fazer a edição, cliquei no método RowEditing onde é redirecionado automaticamente ao code behing.(2.4 GridView Parte II).

Referência: 2.4 GridView Parte II

 

Code Behing

Indo para o code behing digitei o código de referência 2.5 GridView Parte II.

 

 

    /// <summary>

    /// Método que transforma os dados em campos para serem editados

    /// </summary>

    /// <param name="sender"></param>

    /// <param name="e"></param>

    protected void gdBancoServidor_RowEditing(object sender, GridViewEditEventArgs e)

    {

        this.gdBancoServidor.EditIndex = e.NewEditIndex;

        PreencheGridView();

    }

 

Referência: 2.5 GridView Parte II

 

Explicação:

 

Depois que coloquei o comando e.NewEditIndex, mandei preencher o grid novamente. Note que fiz um método específico para buscar os dados e preenchê-lo. O método chama PreencheGridView().

O que esse método faz é apenas abrir o banco de dados, fazer o select e retornar os dados do tipo DataSet.Usando o Edit os campos editáveis irão se tornar campos textBox onde o cliente ou usuário poderá mudar o valor.

 

Seguindo com a aplicação, agora utilizo da mesma forma, porém chamo outro método chamado RowUpdating. (Referência 2.4 GridView Parte II).

Cliquei no RowUpdating e digitei o código. (2.6 GridView Parte II)

 

 

 

/// <summary>

    /// Método que atualiza os dados informados pelo cliente.

    /// Os mesmos sao enviados para um camada de negocio

    /// </summary>

    /// <param name="sender"></param>

    /// <param name="e"></param>

    protected void gdBancoServidor_RowUpdating(object sender, GridViewUpdateEventArgs e)

    {

        //capturando os valores

        GridViewRow gvr = this.gdBancoServidor.Rows[e.RowIndex];

        string txtIdCooperativa = ((TextBox)gvr.FindControl("txtIdCooperativa")).Text;

        string txtNumCooperativa = ((TextBox)gvr.FindControl("txtNumCooperativa")).Text;

        string txtInitialCatalog = ((TextBox)gvr.FindControl("txtInitialCatalog")).Text;

        string txtDataSource = ((TextBox)gvr.FindControl("txtDataSource")).Text;

        string txtIdAmbiente = ((TextBox)gvr.FindControl("txtIdAmbiente")).Text;

 

        if (config.AtualizarCooperativaOffLine(Convert.ToInt32(txtIdCooperativa), txtNumCooperativa, txtInitialCatalog, txtDataSource, Convert.ToInt32(txtIdAmbiente)))

        {

            this.gdBancoServidor.EditIndex = -1;

            PreencheGridView();

        }

    }

 

Referência: 2.6 GridView Parte II

 

Explicação:

O método está todo comentado.

O que sempre é difícil quando usa GridView é pegar os dados que foram editados. Atribui o valor a uma string declarada. (2.7 GridView Parte II)

 

 

string txtIdAmbiente = ((TextBox)gvr.FindControl("txtIdAmbiente")).Text;

 

Referência: 2.7 GridView Parte II

 

Uso o comando FindControl para pegar o id do campos e atribui a variável string.

 

Para atualizar os dados utilizo uma outra classe responsável para acessar o banco e atualizar os dados. O código 2.8 GridView Parte II passa os dados para a o método onde atualiza o código do GridView.

 

 

if (config.AtualizarCooperativaOffLine(Convert.ToInt32(txtIdCooperativa), txtNumCooperativa, txtInitialCatalog, txtDataSource, Convert.ToInt32(txtIdAmbiente)))

        {

            this.gdBancoServidor.EditIndex = -1;

            PreencheGridView();

        }

 

Referência: 2.8 GridView Parte II

 

 

Cancelar

 

Para cancelar o modo de edição, utilizei a referência 2.4 clicando no events RowCancelingEdit. É bem simples e fácil. (2.9 GridView Parte II)

 

 

/// <summary>

    /// Método que cancela a edição e retorna para a forma correta

    /// </summary>

    /// <param name="sender"></param>

    /// <param name="e"></param>

    protected void gdBancoServidor_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)

    {

        this.gdBancoServidor.EditIndex = -1;

        PreencheGridView();

    }

 

Referência: 2.9 GridView Parte II

 

Explicação:

O código que cancela a edição é apenas o EditIndex = -1 e depois mando preencher o grid novamente.

 

No código HTML do GridView basta colocar a linha. (Referência 3.0 GridView Parte II).

 

 

<asp:CommandField ButtonType="Button" CancelText="C" DeleteText="D" EditText="E" HeaderText="A&#199;&#195;O"

                                                                        InsertVisible="False" ShowDeleteButton="true" ShowEditButton="True" UpdateText="A" />

 

Referência: 3.0 GridView Parte II

 

 

Código em funcionamento

 

Referência: 3.1 GridView Parte II

 

 

 

Cliquei no Editar.

 

Referência: 3.2 GridView Parte II

 

 

Cliquei no Cancelar

 

Referência: 3.3 GridView Parte II

 

 

Mudando os dados

 

Referência: 3.4 GridView Parte II

 

 

Valor mudado

 

Referência: 3.5 GridView Parte II

 

 

 

 

 

Bom, eu fico por aqui.

 

Maurício Junior

www.aspneti.com

www.ascompras.com

e-mail: mauricio@aspneti.com

 

 

 



Total de visualizações: 14510
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

Generics usando Object DataSource
Formatando String rapidamente
WebServices usando soapHeader
IsDecimal
Visualizar no Próprio Mail (Macbook)
Gerando Relatório e Exportando para o Excel
XAML Power Toys
IsData
Microsoft Research Laptop Multi-Touch
Vídeo Live Search
Você tem boa postura no trabalho?
Vídeos SQL Server 2005 Express Gratuitamente
Sistema ASP 3.0 utilizando 3 camadas – Parte 2
Pagamento via celular
Cortando String XML
Criando a Tag Cloud em C#
Controle de peso mobile
O vírus do curriculum
Visual SourceSafe 2 / 3 parte
Certificação - Segunda Chance
Novidade: Nomeação MVP Microsoft
Promoção ASPNETi.COM versus Autor - e-Books grátis hoje e amanhã
TV e Internet, um casamento perfeito
Desenvolvendo com Atributos (Javascript) e StringBuilder
Exemplo do livro Programando em C# para Web
Visual SourceSafe - Série 4
Microsoft Kin
Como criar uma tabela dinâmica com ASP.NET
Vídeo - Microsoft Surface Sphere
ASP.NET 4.0 and Visual Studio 2010 Web Development Beta 2 Overview
Instalando o .NET Compact Framework 2.0 SP2 em seu Dispositivo Móvel
Criptografando URL
GridView - Valor total no footer
DateDiff em C#.NET
Copiando Script
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: 297
Artigos:  750
Vdeos:  61
PodCast's:  44
Frum:  3128
Empregos:  1385
Usurios Cadastrados: 6163
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