GridView Parte III
Visual Studio .NET 2005
Olá pessoal, meu nome é Mauricio Junior. Mostrarei nessa parte III do artigo como deletar dados usando o novo componente da IDE 2005 da Microsoft chamado GridView.
É uma seqüência que necessita seguir passo a passo.
Parte I:
http://www.aspneti.com/visualizar/downloadArtigo.aspx?ch_artigos=152
Parte II:
http://www.aspneti.com/visualizar/downloadArtigo.aspx?ch_artigos=155
<asp:GridView ID="gdBancoServidor" runat="server" CellPadding="4" AutoGenerateColumns="False" Width="70%" AllowPaging="True" GridLines="None" OnRowEditing="gdBancoServidor_RowEditing" OnRowCancelingEdit="gdBancoServidor_RowCancelingEdit" OnRowUpdating="gdBancoServidor_RowUpdating" DataKeyNames="IdCooperativa" OnRowDeleting="gdBancoServidor_RowDeleting"> <AlternatingRowStyle BackColor="#cdcdcd" /> <HeaderStyle BackColor="#CCCCCC" HorizontalAlign="Left" /> <PagerStyle HorizontalAlign="Left" /> <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ÇÃO" InsertVisible="False" ShowDeleteButton="true" ShowEditButton="True" UpdateText="A" /> </Columns> <PagerSettings Mode="NumericFirstLast" Position="TopAndBottom" FirstPageText="Primeira" LastPageText="Última" /> </asp:GridView> |
Referência: 3.0 – GridView Parte III
O código do grid está na referência 3.0 onde existe uma linha que é importante para o exemplo que irei mostrar a seguir. (Referência 3.1 – GridView Parte III)
DataKeyNames="IdCooperativa" |
Referência: 3.1 – GridView Parte III
A referência 3.1 chamada DataKeyNames com o valor IdCooperativa, significa que a chave da tabela onde pode ser apagada está com o nome IdCooperativa. O código que irá pegar a chave para deletar o registro, vai ser desse campo.
No laytout da página mostra dois botões. Um com o texto para o usuário ver “E” e outro “D”, ou seja, Editar e Deletar. (Referência 3.2 – GridView Parte III).
Referência: 3.2 – GridView Parte III
Como falado anteriormente, mostrarei como apagar um dado que está aparecendo no componente no clique do botão “D”. Cliquei com botão direito em cima do grid e logo depois em “properties”. Em seguida, cliquei no ícone “events” que parece um raiozinho. A propriedade que agora é usado chama-se RowDeleting. Cliquei duas vezes na mesma e foi criado um método automaticamente “gdBancoServidor_RowDeleting”.
Método RowDeleting
/// <summary> /// Método que pega o valor e manda para a camada acima para deletar /// o valor informado da tabela. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gdBancoServidor_RowDeleting(object sender, GridViewDeleteEventArgs e) { string idCooperativa = this.gdBancoServidor.DataKeys[e.RowIndex]["IdCooperativa"].ToString(); if (config.ExcluirCooperativaOffLine(Convert.ToInt32(idCooperativa))) { this.gdBancoServidor.EditIndex = -1; PreencheGridView(); } } |
Referência: 3.3 – GridView Parte III
Explicação:
Para pegar o valor chave do grid, atribui a uma string para utilizá-la mais abaixo. (Referência 3.4 – GridView Parte III)
string idCooperativa = this.gdBancoServidor.DataKeys[e.RowIndex]["IdCooperativa"].ToString(); |
Referência: 3.4 – GridView Parte III)
Pego o DataKeys, ou seja, o valor do campo chave. O [e.RowIndex] é o valor da linha clicada, para não pegar todos ou só o primeiro item de chave. O [“idCooperativa”] é o nome do campo que quero pegar. Dessa forma, todo o valor fica armazenado na string idCooperativa.
A segunda parte do código, só chama o método que exclui o valor passando a chave cujo é necessário. Dentro desse código, conecto no banco de dados, adiciono o valor ao parâmetro sql, e mando executar. O mesmo retorna valor do tipo Boolean, ou seja, true ou false. (Referência 3.5 – GridView Parte III)
if (config.ExcluirCooperativaOffLine(Convert.ToInt32(idCooperativa))) { this.gdBancoServidor.EditIndex = -1; PreencheGridView(); } |
Referência: 3.5 – GridView Parte III
Se o mesmo retornar true, mando preencher o grid novamente. Esse método ExcluirCooperativaOffLine é uma outra camada que também utiliza outra camada para excluir os valores, ou seja, três camadas. O intuito é mostrar como utilizar o gridView e não como conectar ou executar parâmetros no PL SQL.
Funcionamento
Depois do grid preenchido, irei excluir a linha do primeiro valor 0002. (Referência 3.6 – GridView Parte III)
Referência: 3.6 – GridView Parte III
Cliquei no botão “D” (deletar) e o grid preencho novamente apenas com dois registros no banco de dados. (Referência 3.7 – GridView Parte III)
Referência: 3.7 – GridView Parte III
Bom, fico por aqui.
Qualquer coisa, estamos ai.
Mauricio Junior
Sign up to our newsletter
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.