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
www.ascompras.com
www.aspneti.com
mauricio@ascompras.com