Fórum Trabalhanco com Classes #3900

23/03/2009

0

Amigos,   Estou utilizando ASP.NET e trabalhando com Classes   Tenho por exemplo a Classe Abaixo:   Imports System.Collections.Generic Imports System.Text Imports System.Data.SqlClient Imports System.Data Public class clsREGIAO Private _CODIGO_REG As Integer Public Property CODIGO_REG() As Integer Get Return _CODIGO_REG End Get Set(Byval value as Integer) _CODIGO_REG = value End Set End Property   Private _NOME_REG As String Public Property NOME_REG() As String Get Return _NOME_REG End Get Set(Byval value as String) _NOME_REG = value End Set End Property Public Function SelectREGIAO() As DataSet Dim clsBanco as New clsBanco Dim strsql as String strsql = "SELECT * FROM TBL_REGIAO" Return clsbanco.RetornaDataSet(strsql.tostring) End Function   Public Sub DeleteREGIAO(ByVal IntCodigo As Integer) Dim clsBanco as New clsBanco Dim strsql as String strsql = "DELETE FROM TBL_REGIAO" strsql = "WHERE CODIGO_REG = "& IntCodigo clsbanco.ExecutaComando(strsql.tostring) End Sub Public Sub UpdateREGIAO(Byval IntCodigo as Integer) Dim clsBanco As new clsBanco Dim strsql as String strsql = "UPDATE TBL_REGIAO SET " strsql = strsql & "NOME_REG= '" & _NOME_REG &"'" strsql = strsql & " WHERE CODIGO_REG = " & intCodigo clsbanco.ExecutaComando(strsql.tostring) End Sub Public Sub InsertREGIAO() Dim clsBanco As new clsBanco Dim strsql as String strsql = "INSERT INTO TBL_REGIAO(" strsql = strsql & "NOME_REG" strsql = strsql & ")VALUES(" strsql = strsql & "'"&_NOME_REG & "'" strsql = strsql & ")" clsbanco.ExecutaComando(strsql.tostring) End Sub End Class     Na pagina Default.aspx  eu acrescentei uma GRIDVIEW       Criei um OBJECTDataSource  Que faz referencia a Esta Classe     Consigo Fazer a Opção de Select Sem problemas,     MINHA PERGUNTA É,     Como Faço Para Definir no GRIDVIEW  que os procedimentos   UPDATE, INSERT e DELETE  da Classe sejam Chamados?        Grato                        
Fernando Reis

Fernando Reis

Responder

Posts

23/03/2009

Luiz Maia

Fernando,   Para que um DataSource seja lincado num GridView e as propriedades de Update, delete sejam habilitadas dinamicamente, vc precisa criar um DataSet Tipado.   Mas como vc já fez suas consultas de CRUD, vc deve chamar os metodos a mão mesmo. Siga os passos abaixo:   Crie uma coluna usando TemplateField no GridView e jogo o ID do registro no CommandArgument; Crie um metodo de Edição que vc passara este Id como parametro; Crie outra coluna identica a de Editar para Exclusão, e faça um metodo de exclusão tb. Use o RowDataBound para pegar o Id e jogar no CommandArgument.   De uma olhada abaixo:   Agora que você já tem os dados populados na sua GridView, você precisa ter uma coluna com um botão de edição, segue abaixo uma sugestão, repare nas duas ultimas colunas da Grid que possuem imagebuttons, uma para edição e outr para exclusão. <asp:GridView ID="gvDados" runat="server" AutoGenerateColumns="False" DataKeyNames="codfiscal" OnRowDataBound="gvDados_RowDataBound" AllowPaging="True" OnPageIndexChanging="gvDados_PageIndexChanging"> <Columns> <asp:BoundField DataField="numGtd" HeaderText="Número" /> <asp:BoundField DataField="nomDocum" HeaderText="Tipo" /> <asp:TemplateField HeaderText="Alterar" SortExpression="codGtd"> <ItemStyle HorizontalAlign="Center" /> <HeaderStyle HorizontalAlign="Center" Width="1px" /> <ItemTemplate> <asp:ImageButton ID="ibAlterar" runat="server" CausesValidation="False" ImageUrl="~/Images/btn_alterar.gif" OnCommand="Alterar" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Excluir" ShowHeader="False"> <ItemStyle HorizontalAlign="Center" /> <HeaderStyle HorizontalAlign="Center" Width="1px" /> <ItemTemplate> <asp:ImageButton ID="ibExcluir" runat="server" CausesValidation="False" ImageUrl="~/Images/btn_excluir.gif" OnClientClick="javascript:return ConfirmaExclusao('esta GTD');" OnCommand="Excluir" /> </ItemTemplate> </asp:TemplateField> </Columns> <PagerStyle Font-Bold="True" ForeColor="White" /> </asp:GridView>   No evento RowDataBound do GridView, vc coloca os commadsArguments para os itens que deseja editar:   protected void gvDados_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string codItem = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "codGtd")); ImageButton ibAlterar = e.Row.FindControl("ibAlterar") as ImageButton; ImageButton ibExcluir = e.Row.FindControl("ibExcluir") as ImageButton; ibExcluir.CommandArgument = codItem; ibAlterar.CommandArgument = codItem;} } E aqui você chama o método que precisa: protected void Alterar(object sender, CommandEventArgs e) { int codItem = Convert.ToInt32("0" + e.CommandArgument); EditarItem(codItem); }   Note que o metodo acima é invocado no GridView na coluna Alterar. Agora é só usar um Panel, por exemplo, e mandar as informações que vc deve recuperar na base para os controles dentro dele, já que vc já tem o ID do registro que deseja alterar. Pode usar a própria parte de cadastro.   Caso não entenda algum passo, me avise. Aguardo seu retorno.   Abraços Att Luiz Maia
Responder

Gostei + 0

23/03/2009

Fernando Reis

Luiz, Obrigado pela ajuda,


Vamos lá

Queria que explica-se esta Indicação abaixo:

Crie uma coluna usando TemplateField no GridView (até aqui tudo bem) e jogo o ID do registro no CommandArgument;(???????????????????????  desculpa,   não entendi aqui.  CommandArgument)


Crie um metodo de Edição que vc passara este Id como parametro; ( Ja tenho este pronto)
Crie outra coluna identica a de Editar para Exclusão, e faça um metodo de exclusão tb. (fica a dúvida acima)
Use o RowDataBound para pegar o Id e jogar no CommandArgument. (dúvida acima).



Quando entrou na parte da  ROWDataBound ( mesmo no C# eu entendi...kkkk)

Queria entender melhor esta faze, pode comentar por favor?


'-------------------------------------------------------------------------------------------------
ImageButton ibAlterar = e.Row.FindControl("ibAlterar") as ImageButton;
ImageButton ibExcluir = e.Row.FindControl("ibExcluir") as ImageButton;
ibExcluir.CommandArgument = codItem;
ibAlterar.CommandArgument = codItem;}
'------------------------------------------------------------------

Fico no Aguardo,..


Grato
Responder

Gostei + 0

23/03/2009

Luiz Maia

Fernando,   O DataRowBound é um recurso que varre seus registros do GridView, para implementa-lo, vá até as propriedades do GridView, no Properties, clique no raio Events e vc vera esta evento la, dê dois cliques nele que seu evento estara criado.     ImageButton ibAlterar = e.Row.FindControl("ibAlterar") as ImageButton;
ImageButton ibExcluir = e.Row.FindControl("ibExcluir") as ImageButton;
ibExcluir.CommandArgument = codItem;
ibAlterar.CommandArgument = codItem;}   Considerações do trecho acima: Foram criados dois ImageButton, usamod o findcontrol para "acha-los" dentro do GridView; O CommandArgument é um atributo destes controles onde podemos armazenar valores, no seu caso o ID de cada linha.     string codItem = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "codTeste")); Esta linha é usada dentro do DataRowBound para receber os valores de sua coleção para cada registro. Por exemplo, vc tem na sua base 3 registros:   codTeste    dscNome 1                Luiz 2                Agnelo 3                Maia     Quando vc usa o DataRow, ele varre os registros e vai setando-os para cada linha no GridView. Repare que o codigo acima, recupera o codTeste, para recuperar o nome, usa-se:   string codItem = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "dscNome")); E quando vc joga este valor no commandArgument, cada linha do GridView assume o valor do registro da vez.   Caso não tenha endentido algo, posso fazer uma pequena aplicação para vc ver como funciona. Abraços   Att Luiz Maia  
Responder

Gostei + 0

24/03/2009

Fernando Reis

Ola Luiz,


Agradeço o Retorno



se puder criar uma pequena aplicação será muito util,

grato
Responder

Gostei + 0

24/03/2009

Luiz Maia

Blz, Fernando.   Vou desenvolver uma e te mando hj a noite.   Enquanto isto, seria altamente recomendavel vc ler este artigo:   https://www.devmedia.com.br/articles/viewcomp.asp?comp=9281   Caso não possua acesso, providenciamos para vc! Abraços   Att Luiz Maia
Responder

Gostei + 0

24/03/2009

Fernando Reis

Luiz,

Fico no Aguardo e Agradeço.


A noite então olho o projetinho,

Obrigado pelo envio do artigo,  Vou estudá-lo agora,


Abraço
 


Responder

Gostei + 0

24/03/2009

Luiz Maia

Segue a aplicação de exemplo Fernando. Tem todos os metodos de um CRUD no arquivo Descricao.aspx dentro da pasta Adminstracao.     http://video.devmedia.com.br/naoexclusivo/LuizMaia/Consultoria/fernando01.zip   Qualquer coisa que não entender, me avise. Abraços   Att Luiz Maia
Responder

Gostei + 0

25/03/2009

Fernando Reis

Obrigado Luiz,

Duvida Escalrecida,

Muito Obrigado,   Ja consegui Fazer o processo.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar