Query linq para algo que se possa editar

28/05/2009

Sou programador iniciante, e estou com uma duvida,

Tenho 03 tabelas, que controlam a ação de um envolvido,
cada individuo pode ter muitas ações, o problema é que tem uma
tabela de relacionamento que liga o Envolvido com suas ações (tabela Responsavel_acao) ,

Exemplo:

Envolvido
Cod_envolvido - int(auto incremento)
Nome_envolvido - varchar(50)

Acao
Cod_acao - int(auto incremento)
Nome_acao - varchar(50)

Responsavel_acao
Cod_responsavelAcao - int(auto incremento)
Cod_envolvido - int (ligado com a tabela envolvido)
Cod_acao - int (ligado com a tabela acao)

O que preciso é simplesmente selecionar o envolvido (um drop por exemplo)
e um grid mostrar todas as ações dele (e editar)
.. ou seja um envolvido pode ter dezenas de ações


 depois de muito tentar eu consegui fazer uma query com o Linq
(estou tentando usar bastante o linq, pois gostei muito das facilidades que ele oferece)

        var dados = from c in db.envolvidos
                    join p in db.responsavel_acaos on c.cod_envolvido equals p.cod_envolvido
                    join ac in db.acoes on p.cod_acao equals ac.cod_acao
                    where c.cod_envolvido == 1
                    select new
                    {
                        ac.cod_acao,
                        ac.descr_acao
                     };

        
     //   ASPxGridView3.AutoGenerateColumns = true;
        ASPxGridView3.DataSource = dados;
        ASPxGridView3.DataBind();

 
Bom eu consegui jogar isso pra um grid, e aparece exatamente o que preciso,
o problema é que eu preciso editar esses dados, (incluir, apagar, excluir)
e esse grid é só o resultado da consulta e não sei como fazer, seria perfeito
se eu conseguisse fazer a edição no proprio grid. então como posso fazer
pra trasnfrormar essa query em (suponho seja a solução) um Linqdatasource ?
Mateus Lopes

Mateus Lopes

Curtidas 0

Respostas

Luiz Maia

Luiz Maia

28/05/2009

Ola Mateus,   Sugiro vc mondar um recurso de edição fora da Grid, fica muito engessado. Por exemplo, caso tenha varios campos na Grid fica muito ruim.   Ja que esta começando desenvolver agora, tente evitar o maximo o uso de recursos criados via Wizard, procure fazer sempre via codigo, assim vc podera aprender realmente a programar sabendo que o que acontece no background do Modo Design.   Voltando ao seu problema, faça o seguinte:   Crie duas colunas do tipo TemplateField no final de sua Grid e adicione os eventos de Edição e Exclusão as mesmas:   <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.   Note que o metodo acima (RowDataBound) é 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.   Tenho um exemplo de aplicação que fiz ontem para outro solicitante, disponibilizei ele no Disco Virtual, esta em C#, caso queira, posso disponibilizar pra vc tb, vera que é bem simples e vc podera fazer as alterações pertinentes ao seu projeto.   Caso não entenda algum passo, me avise. Aguardo seu retorno.   Att Luiz Maia
GOSTEI 0
Mateus Lopes

Mateus Lopes

28/05/2009

Ola, será que vc poderia me disponibilizar o exemplo ?
GOSTEI 0
Luiz Maia

Luiz Maia

28/05/2009

Ola Mateus, tudo bom?   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, apenas me informe, ok!     Segue uma aplicação de exemplo que fiz para um outro soliticante. 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     Aguardo seu retorno Mateus, Abraços   Att Luiz Maia
GOSTEI 0
Mateus Lopes

Mateus Lopes

28/05/2009

Ola Luiz, eu tentei, mas infelizmente eu não consegui..
De qualquer forma muito obrigado, pela ajuda, pelo jeito ainda tenho um longo caminho, achei muito complicado, então vou fazer de outro jeito,  sou muito novato, nisso.. então pode fechar esse chamado.
Se puder pegue o outro chamado que abri, e conversamos lá Abraços

GOSTEI 0
Luiz Maia

Luiz Maia

28/05/2009

Blz Mateus,   Precisando de qualquer coisa, me avise. Estamos a disposição. Abraços   Att Luiz Maia
GOSTEI 0
Devmedia

Devmedia

28/05/2009

Mateus,
a consultoria DevMedia está pronta para resolver os seus problemas quanto a linguagem q vc escolheu.
Se o exemplo que o consultor não esclareceu em sua totalidade as dúvidas, por favor, post nesse mesmo chamado as dúvidas existentes para que o consultor possa lhe ajudar, sempre buscando clareza nas suas respostas.
Se achar mais confortável e rápido de entender, vc pode solicitar uma resposta em video sobre o problema em qestão.

GOSTEI 0
Devmedia

Devmedia

28/05/2009

Mateus,
a consultoria DevMedia está pronta para resolver os seus problemas quanto a linguagem q vc escolheu.
Se o exemplo que o consultor não esclareceu em sua totalidade as dúvidas, por favor, post nesse mesmo chamado as dúvidas existentes para que o consultor possa lhe ajudar, sempre buscando clareza nas suas respostas.
Se achar mais confortável e rápido de entender, vc pode solicitar uma resposta em video sobre o problema em qestão.

GOSTEI 0
POSTAR