GridView Editável com DropDownList e CheckBox
Olá, Obrigado pela competência e rapidez rodrigão, estou precisando de mais uma, confesso que isso é viciante.
Explicando: Tenho uma tabela de:
Contas: IDConta(smallint), conta (varchar 30), e uma tabela de
Lançamentos: (IDLan(Integer), CentroDeCusto(SmallInt), data, idconta, jan, fev, mar.
Eu preencho meu Gridview através de uma store procedure, que tem um inner join na tabela de Contas, porem preciso mostra para o usuário um GridView com um DropDownList com as contas e no final da Linha um CheckBox de verificado ou Sim/Não
Tipo assim
Conta Jan Fev Março Verificado
Pessoal 80.000 90.000 110.000 Sim
Equipamentos 5.000 5.000 5.000 Nao
Treinamentos 10.000 8.000 Nao
material informatica 500 Nao
Trabalho com MSSQLServer2005
Explicando: Tenho uma tabela de:
Contas: IDConta(smallint), conta (varchar 30), e uma tabela de
Lançamentos: (IDLan(Integer), CentroDeCusto(SmallInt), data, idconta, jan, fev, mar.
Eu preencho meu Gridview através de uma store procedure, que tem um inner join na tabela de Contas, porem preciso mostra para o usuário um GridView com um DropDownList com as contas e no final da Linha um CheckBox de verificado ou Sim/Não
Tipo assim
Conta Jan Fev Março Verificado
Pessoal 80.000 90.000 110.000 Sim
Equipamentos 5.000 5.000 5.000 Nao
Treinamentos 10.000 8.000 Nao
material informatica 500 Nao
Trabalho com MSSQLServer2005
Paulo Freire
Curtidas 0
Respostas
Rodrigo Mourão
29/06/2009
olá amigo !!!
Essa é boa ein rsrsrs. Vou cair dentro aqui e assim que conseguir posto a solução.
Abs !!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Essa é boa ein rsrsrs. Vou cair dentro aqui e assim que conseguir posto a solução.
Abs !!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Rodrigo Mourão
29/06/2009
Olá amigo !
Estou trabalhando com afinco neste chamado. A coisa não esta sendo tão simples quanto imaginei. Peço a gentileza de aguardar mais um pouco. Normalmente não demoro tanto em respoder chamados.
Abs !!!
Estou trabalhando com afinco neste chamado. A coisa não esta sendo tão simples quanto imaginei. Peço a gentileza de aguardar mais um pouco. Normalmente não demoro tanto em respoder chamados.
Abs !!!
GOSTEI 0
Paulo Freire
29/06/2009
Rodrigo vcs tem crédito conosco, só esqueci de mencionar que aqui no Quartel sempre trabalhamos com Store Procedure para Manipular Dados, não sei se isso ajuda, mas não se preocupe com o tempo.
GOSTEI 0
Rodrigo Mourão
29/06/2009
Olá Amigo !!
Brm estamos progredindo aqui no problema, ou melhor, na solução. Preciso que me diga uma coisa. Esse checkbox onde vc diz que esta verificado ou não, ele não tem campo correspondente no banco, correto?
Outra coisa vc vai querer fazer alguma coisa com os registros que forem verificados, por exmplo baixar os que foram verificados ?
Fico no aguardo das respostas a estas questões. De qualquer forma eu continuo aqui no chamado, estas perguntas são apenas para eu poder identificar mais algumas necessidades.
Abs!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Brm estamos progredindo aqui no problema, ou melhor, na solução. Preciso que me diga uma coisa. Esse checkbox onde vc diz que esta verificado ou não, ele não tem campo correspondente no banco, correto?
Outra coisa vc vai querer fazer alguma coisa com os registros que forem verificados, por exmplo baixar os que foram verificados ?
Fico no aguardo das respostas a estas questões. De qualquer forma eu continuo aqui no chamado, estas perguntas são apenas para eu poder identificar mais algumas necessidades.
Abs!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Rodrigo Mourão
29/06/2009
Ok, Vamos a Solução.
Bem eu estava partindo pelo evento OnRowDataBound, mas isso não estava me agradando assim eu parti para o aspx mesmo e o resultado ficou bem melhor. E preciso deixar claro que o que será feito no GridView é uma espécie de De-Para, ou seja, a sua procedure terá que trazer o IDConta mas não vai exibir na Grid e terá um outro Select para pegar todas as contas e colocar num DropDwnList com e exibir o nome correto em cada Linha. Sendo assim va atá a pagina aspx e dentro das Tags da gridview coloque o codigo abaixo:
<asp:TemplateField headertext="Conta">
<ItemTemplate>
<asp:DropDownList ID="DDL_CONTAS" runat="server" DataSourceID="SqlContas"
DataTextField="Conta" DataValueField="ContasID"
SelectedValue='<%# Bind("ContasID") %>' Width="223px">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlContas" runat="server"
ConnectionString="<%$ ConnectionStrings:DBConsultoriaConnectionString %>"
SelectCommand="SELECT ContasID, Conta FROM dbo.Contas">
</asp:SqlDataSource>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField headertext="Verificado">
<ItemTemplate>
<asp:CheckBox id="CHK_Verificado" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
Repare que o que eu fiz foi criar duas colunas templates. NA primeira eu criei um DropDownList e um SqlDataSource. Eu configurei o dropdown para pegar os dados atraves do SqlDataSource tendo a chave o campo CotasID e Value como Contas. Em seguido eu digo onde o DropDown vai pegar o parametro para exibir o nome da conta correta. Isso e feito em: SelectedValue='<%# Bind("ContasID") %>'. Isto é, ele vai pegar o campo contasID na GridView, posicionar o index do DropDown nele e exibir o nome.
So não esqueca de mudar o atributo <%$ ConnectionStrings:DBConsultoriaConnectionString %> para o nome do seu connection string.
Abaixo a imagem da app rodando.
Espero ter ajudado !
Abs!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Bem eu estava partindo pelo evento OnRowDataBound, mas isso não estava me agradando assim eu parti para o aspx mesmo e o resultado ficou bem melhor. E preciso deixar claro que o que será feito no GridView é uma espécie de De-Para, ou seja, a sua procedure terá que trazer o IDConta mas não vai exibir na Grid e terá um outro Select para pegar todas as contas e colocar num DropDwnList com e exibir o nome correto em cada Linha. Sendo assim va atá a pagina aspx e dentro das Tags da gridview coloque o codigo abaixo:
<asp:TemplateField headertext="Conta">
<ItemTemplate>
<asp:DropDownList ID="DDL_CONTAS" runat="server" DataSourceID="SqlContas"
DataTextField="Conta" DataValueField="ContasID"
SelectedValue='<%# Bind("ContasID") %>' Width="223px">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlContas" runat="server"
ConnectionString="<%$ ConnectionStrings:DBConsultoriaConnectionString %>"
SelectCommand="SELECT ContasID, Conta FROM dbo.Contas">
</asp:SqlDataSource>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField headertext="Verificado">
<ItemTemplate>
<asp:CheckBox id="CHK_Verificado" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
Repare que o que eu fiz foi criar duas colunas templates. NA primeira eu criei um DropDownList e um SqlDataSource. Eu configurei o dropdown para pegar os dados atraves do SqlDataSource tendo a chave o campo CotasID e Value como Contas. Em seguido eu digo onde o DropDown vai pegar o parametro para exibir o nome da conta correta. Isso e feito em: SelectedValue='<%# Bind("ContasID") %>'. Isto é, ele vai pegar o campo contasID na GridView, posicionar o index do DropDown nele e exibir o nome.
So não esqueca de mudar o atributo <%$ ConnectionStrings:DBConsultoriaConnectionString %> para o nome do seu connection string.
Abaixo a imagem da app rodando.
Espero ter ajudado !
Abs!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Rodrigo Mourão
29/06/2009
Segue link para download:
https://www.devmedia.com.br/imagens/discovirtual/162135/GridViewDropDown.zip
Abs !
https://www.devmedia.com.br/imagens/discovirtual/162135/GridViewDropDown.zip
Abs !
GOSTEI 0
Rodrigo Mourão
29/06/2009
Olá Amigo,
Há mais alguma dúvida ?
Estamos aguardando para encerrar o chamado.
Abs,
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Há mais alguma dúvida ?
Estamos aguardando para encerrar o chamado.
Abs,
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Paulo Freire
29/06/2009
Olá Rodrigo estou retornando hoje de um suporte fora de são Pualo, irei testar e lhe retorno.
GOSTEI 0
Paulo Freire
29/06/2009
Muito bom Rodrigo, porem não consigo alterar os campos com valores, terei que fazer templates pra todos ? tenho meses de Janeiro a Dezembro, e outra coisa para Salvar como faria pois minha Stores Procedures são Select, Insert e Delete numa só procedure só passo um parametro de S, I ou D.
GOSTEI 0
Rodrigo Mourão
29/06/2009
Olá Amigo cada dúvida tem que ser passada em um chamado. Está de como atualizar preciso que seja aberto um novo chamado para isso. Para poder lhe explicar como o .Net funciona.
Quanto a alterar os valores vc não consegue pois na montagem da grid vc nao informou a condição para atualização. Se quiser abra um chamado sobre como atualizar registro com GRID View no .Net. Peça no chamado que seja encamionhado para mim que lhe ajudo a entender como a mágica funciona para que voce possa aplicar em seus projetos.
Abs!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Quanto a alterar os valores vc não consegue pois na montagem da grid vc nao informou a condição para atualização. Se quiser abra um chamado sobre como atualizar registro com GRID View no .Net. Peça no chamado que seja encamionhado para mim que lhe ajudo a entender como a mágica funciona para que voce possa aplicar em seus projetos.
Abs!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0