Fórum Preciso de ajuda nessa GridView... #363

10/11/2008

0

Olá pessoal,   estou precisando de uma ajudinha, preciso implementar uma funcionalidade em gridview para atualização de uma informação especifica, so que eu não estou tendo a luz da criança, pois aqui agente não pode acessar a base diretamente, como o gridview faz temos que acessar por uma classe e usar hibernate, mas o que eu quero mesmo e a logica ou a ajuda mesmo nesse gridview para fazer essa implementação, usamos web user control na Tela de alteração, abaixo vou passar todo o codigo aonde preciso implementar:   Se tiver como visualizar as imagens preciso implementar os botões de editar, quando clicados aparecerar uma tela de apenas para alterar os valores  de peso.   Imagens:   ../imagens/articles/189441/GCR_2-2.JPG - Aqui preciso implementar uma forma que venha o botão imagem, apenas nas informações não nos titulos, conforme em vermelho. imagens/articles/189441/CGR_1-2.JPG - Aqui preciso editar apenas aquela informação de peso.   ----------------------------------------------------------------------------------------------   1 - visualizarReumo.aspx   <asp:Content ID="Content1" ContentPlaceHolderID="conteudo" runat="Server"> <table class="BordaTabela" width="100%" border="0" cellpadding="5" cellspacing="0"> <tr class="TituloTabela"> <td height="5"> Grau de Complexidade do RAL - GCRtd> tr> <tr class="LinhaClara"> <td style="height: 5px"> td> tr> <tr class="LinhaClara"> <td height="5"> <asp:GridView ID="gvGCR" runat="server" FooterStyle-CssClass="LinhaEscura" FooterStyle-Font-Bold="true" Width="550px"> <Columns> <asp:TemplateField HeaderText="Descrição"> <ItemTemplate> ItemTemplate> asp:TemplateField> <asp:TemplateField HeaderText="Quantidade"> <ItemTemplate> ItemTemplate> <ItemStyle HorizontalAlign="Right" /> asp:TemplateField> <asp:TemplateField HeaderText="Editar" > <ItemTemplate> <asp:ImageButton ImageUrl="~/site/imagens/ico-editar.gif" Onclick="PrototipoEditarGCR_click" Visible="true" runat="server" ID="PrototipoEditarGCR" /> ItemTemplate> asp:TemplateField> Columns> <FooterStyle CssClass="LinhaEscura" Font-Bold="True" /> asp:GridView> <br /> <asp:Label ID="lblTotalGCR" runat="server" CssClass="TituloPagina" Text="Total GCR: " style="font-weight: normal;">asp:Label> <br /> <asp:Label ID="lblClassificacaoGCR" runat="server" CssClass="TituloPagina" Text="Classificação: " style="font-weight: normal;">asp:Label> <uc1:Navegacao ID="navegaPagina" runat="server" btnTelaAnterior="false" btnProximaTela="false" btnEstouCiente="true" /> td> tr> table> asp:Content>   ---------------------------------------------------------------------------------------------- 2 - visualizarResumo.aspx.vb Imports System.Collections.Generic Imports br.gov.dnpm.ral Imports br.gov.dnpm.util   Partial Class VisualizarResumo Inherits Page Protected vQuantidadesProcessoPorTipoSituacaoOperacional As IDictionary(Of TipoSituacaoOperacional, Integer) Protected vQuantidadesProcessoPorTipoDiploma As IDictionary(Of TipoDiplomaLegal, Integer) Guarda a relação entre os tipos envolvidos e o peso Protected vPesosPorTipoPropriedade As IDictionary(Of String, Integer) = New Dictionary(Of String, Integer)   Variável auxiliar utilizada no asp Public headerTemplateDiploma As String   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then Declarar variáveis locais Dim _ral As RAL = Nothing Dim _ralFacadeFactory As RALFacadeFactory = FacadeFactoryHelper.newFacadeFactory() Dim _ralFacade As RALFacade = _ralFacadeFactory.criarRALFacade Verificar se um RAL está sendo aberto If Request.Params("codigoRal") <> Nothing Then Session.Item("codigoRal") = Request.Params("codigoRal") End If Se existe um ral selecionado _ral = _ralFacade.consultarCodigoRAL(Session.Item("codigoRal")) Session.Add("numeroCpfCnpjMinerador", _ral.minerador.numeroCpfCnpj) Session.Add("nomeMinerador", _ral.minerador.nome) Session.Add("anoBaseRal", _ral.anoBase) loadPermissaoMenu(_ral) If _ral.analises Is Nothing Then _ralFacade.salvar(_ral) End If If (_ral.analises.grauComplexidade Is Nothing) Or (_ral.analises.grauComplexidade.Count.Equals(0)) Then _ralFacade.salvar(_ral) End If loadGrid(_ral) getValorPonderadoTotal(_ral) navegaPagina.loadButton(_ral) End If End Sub Protected Function getValorPonderadoTotal(ByVal ral As RAL) As Integer lblTotalGCR.Text += CType(ral.analises.totalGCR, Integer).ToString() Select Case ral.analises.totalGCR Case Is = 10 lblClassificacaoGCR.Text += "RAL de complexidade padrão" Case Is > 10 lblClassificacaoGCR.Text += "RAL acima da complexidade padrão" Case Is < 10 lblClassificacaoGCR.Text += "RAL abaixo da complexidade padrão" End Select Return CType(ral.analises.totalGCR, Integer) End Function Private Sub loadPermissaoMenu(ByVal _ral As RAL) Dim _possuiAguaMineral As Boolean = False Dim _possuiCessaoArrendamento As Boolean = False Dim _possuiSubstanciaDiferenteDeAguaMineral As Boolean = False For Each titulo As TituloAproveitamento In _ral.minerador.titulosAproveitamento _possuiCessaoArrendamento = (titulo.cessao IsNot Nothing OrElse titulo.arrendamento IsNot Nothing) If Not (_possuiSubstanciaDiferenteDeAguaMineral AndAlso _possuiAguaMineral) Then For Each s As Substancia In titulo.substancias If s.tipoClasse.descricao = "Água Mineral" Then _possuiAguaMineral = True Else _possuiSubstanciaDiferenteDeAguaMineral = True End If Next End If Next Session.Add("possuiAguaMineral", _possuiAguaMineral) Session.Add("possuiCessaoArrendamento", _possuiCessaoArrendamento) Session.Add("possuiSubstanciaDiferenteDeAguaMineral", _possuiSubstanciaDiferenteDeAguaMineral) End Sub Private Sub loadGrid(ByVal _ral As RAL) Dim gcrs As New List(Of GrauComplexidade) Dim gcrsLegal As New List(Of GrauComplexidade) Dim gcrsOperacional As New List(Of GrauComplexidade) Dim gcrsEmpreendimentos As New List(Of GrauComplexidade) For Each gcr As GrauComplexidade In _ral.analises.grauComplexidade If gcr.tipo.codigo.Equals(GrauComplexidadeImpl.tipos.LEGAL) Then gcrsLegal.Add(gcr) ElseIf gcr.tipo.codigo.Equals(GrauComplexidadeImpl.tipos.OPERACIONAL) Then gcrsOperacional.Add(gcr) ElseIf gcr.tipo.codigo.Equals(GrauComplexidadeImpl.tipos.CARACTERIZACAO_EMPREENDIMENTOS) Then gcrsEmpreendimentos.Add(gcr) End If Next gcrs.Add(New GrauComplexidadeImpl("1. CARACTERIZAÇÃO DOS DIREITOS MINERÁRIOS", 0, 0, Nothing)) If (gcrsLegal.Count > 0) Then gcrs.Add(New GrauComplexidadeImpl("1.1 Legal", 0, 0, Nothing)) gcrs.AddRange(gcrsLegal) End If If (gcrsOperacional.Count > 0) Then gcrs.Add(New GrauComplexidadeImpl("1.2 Operacional", 0, 0, Nothing)) gcrs.AddRange(gcrsOperacional) End If If (gcrsEmpreendimentos.Count > 0) Then gcrs.Add(New GrauComplexidadeImpl("2. CARACTERIZAÇÃO DOS EMPREENDIMENTOS", 0, 0, Nothing)) gcrs.AddRange(gcrsEmpreendimentos) End If gvGCR.DataSource = gcrs gvGCR.DataBind() End Sub Protected Sub PrototipoEditarGCR_click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Dim PrototipoEditarGCR = Nothing PrototipoEditarGCR.Redirect = "~/includes/PrototipoEditarGCR.ascx" End Sub   End Class ---------------------------------------------------------------------------------------------- Se precisar de mais informação estou no aguarde, pra mim quanto antes melhor..   Att,   Alencar Porto
Alencar Porto

Alencar Porto

Responder

Posts

11/11/2008

Guinther Pauli

Olá Alencar,   Tudo bem ?   Você poderia esclarecer melhor, o que exatamente está querendo atualizar no gridview  ?   Preciso entender melhor a situação para poder ajudá-lo.Quanto mais infomações melhor  !!   Fico no aguardo,   abs
Responder

Gostei + 0

11/11/2008

Alencar Porto

Claro,   nem eu estava entendo direito o que era pra fazer.   E o seguinte na Gridview devemos criar uma nova coluna Editar (quando clicamos no icone conforme mostra a figuras anexadas sobre Grai de complexidade do RAL, clicando nele deve ser aberto uma janelinha modalPopupExtended:ajax para editar as informações de peso"ou quantidade". Detalhe que ele deve criar dinamicamente os icones e nao deve criar em por exemplo 1.1 Legal e 1.2 Operacional. Eu não estou conseguindo fazer essa criação dinamica e ao mesmo tempo trazer corretamente a informação para alteração. Num User control.   Então preciso:   1 - Fazer um coluna editar GridView dinamincamente apenas nas informações apresentadas com valores (peso).   2 - Fazer um tela que altere, essas informações.   Espero que tenha ajudado, se precisar de mais informações so apresentar as questões toda ajuda e muito bem vinda, caso seja necessario criar um Video mostrando o projeto para um melhor entendimento posso faze-lo.   Att.,   Alencar Porto alencarxx@hotmail.com sky: alencar.porto gtalk: alencarporto2008@gmail.com  
Responder

Gostei + 0

12/11/2008

Guinther Pauli

Alencar, Estou enviando em anexo um exemplo completo, inclusive com banco de dados, de como chama um modalpopup a partir de um gridview, inclusive tem o exemplo de atualização de dados.   http://video.devmedia.com.br/EuclidesChuma2/Chamado363-GridViewModelPopupExtender.zip   Caso tenha alguma dúvida estamos a disposição,   Aguardo seu retorno,     abs
Responder

Gostei + 0

12/11/2008

Alencar Porto

Olá pessoal,   e o seguinte para conseguir Buildar (rodar) aqui na minha maquina preciso que esteja na versao 2.0 do VS, não tenho como baixar um Express VS 2008 e instalar na maquina que eu trabalho.   Eu vi o modelo, acredito que vai me ajudar, mas preciso faze-lo roda-lo. blz..   Att.,   Alencar Porto
Responder

Gostei + 0

13/11/2008

Guinther Pauli

Alencar,   Segue exemplo convertido para o VS 2005,   http://video.devmedia.com.br/EuclidesChuma2/Chamado363-GridViewModelPopupExtender-VS2005-.zip   Aguardo seu retorno,   abs
Responder

Gostei + 0

13/11/2008

Guinther Pauli

Alencar,   Seu problema foi resolvido ?   Posso ti ajudar em mais alguma coisa neste chamado ?   Fico no aguardo,   abs
Responder

Gostei + 0

13/11/2008

Alencar Porto

Olá,   Cara ficou muito bom o exemplo para gridview em VS2005, aqui funcinou uma beleza. Mas ainda não contempla minha duvida.   Pois se verificarmos bem a minha gridview ele e preenchida com linhas que não editam nada, e eu ainda não achei uma logica correta para fazer que o o botão de editar não apareça nessas linhas, por exemplo: 1.1 Legal ou 1.2 Operacional na tela de Grau de Complexidade, essa logica que eu preciso fazer funcionar na GridView.   Att.,   Alencar Porto
Responder

Gostei + 0

13/11/2008

Guinther Pauli

Alencar,   O que você quer é acionar o modalPopUp no momento que o usuário clikar na linha?   Gostaria de entender melhor qual seu objetivo, pois não está claro.   No aguardo,   abs    
Responder

Gostei + 0

13/11/2008

Alencar Porto

Ok,   Não não e isso não. preciso que você olha direito na imagem GCR_2.jpg, se perceber na coluna do ImageButton, tem linhas que não aparece a imagem Ico-editar.gif. Eu preciso dessa logica para o Gridview, pois a logica do ModalPopup esta ok. Não estou conseguindo saltar uma linha ou alguma regra que faça a imagemButton = false naquela linha especifica. Como eu disse por exemplo 1.1Legal so em Descrição mais nada em peso ou editar.   Basta olhar melhor a imagem anexo GCR_2.jpg.    
Responder

Gostei + 0

13/11/2008

Guinther Pauli

Alencar,   Eu olhei as imagens, pelo que eu entendi essa é o cenário que você tem e não o que você queria ter.   Para ver se eu entendi,   Você quer que as imagens apareçam apenas nas linhas que não são títulos, assim como na imagem em anexo. e essa imagem ira chamar o modalPopUp ?   Seria apenas isso ou teria que ter alguma outra imagem nos títulos que edite apenas a descrição dos títulos?   Aguardo para fechar.
Responder

Gostei + 0

17/11/2008

Guinther Pauli

Alencar, Continuamos aguardando seu retorno,   abs  
Responder

Gostei + 0

17/11/2008

Alencar Porto

Certo,   Eu continuo precisando de ajuda. Parece que não ficou claro o que eu preciso, o exemplo não supriu minha duvida, que e fazer um controle de linhas. como o exemplo em anexo da imagem GCR.JPG. Que as linhas marcas em vermelho na coluna Editar não deveria aparecer o ImageButton que linka para o modalPopup.   O que eu desejo e um mecanismo de controle dessas linhas para não aparecer nada.   Ou, será que não e possivel fazer isso numa gridview?   Att.   Alencar Porto
Responder

Gostei + 0

17/11/2008

[devmedia .net]

Olá Alencar, Vamos resolver seu problema ok !?   O que eu entendi é que você precisa colocar o botão editar somente na linha que tem a informação de peso correto!?   Você deverá trabalhar com o método RowDataBound do Grid.. esse método é executado ao ser carregada as linhas do grid...   Segue abaixo um exemplo..   protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if ((e.Item.ItemType == ListItemType.Item)|| (e.Item.ItemType == ListItemType.AlternatingItem)) { //Verifica se a coluna correspondente ao peso ‚ diferente de vazio if (e.Row.Cells[0].Text == "") { //Se for diferente de vazio //encontre o botÆo editar , coloque o nome do botÆo editar(imagebutton) ((ImageButton)e.Row.FindControl("ImagemButton1")).Visible = false; } } }   o resto fica igual, para utilizar o popup..   abraços, Aguardo retorno...   Carlos Jr    
Responder

Gostei + 0

18/11/2008

Alencar Porto

Olá,   esta dando um erro de sintaxe na expressão abaixo:   ((ImageButton)e.Row.FindControl("btnEdit")).Visible = False O que seria, esta faltando alguma coisa, um for? Coloquei em anexo um printScreen do Erro_de_sintaxe.jpg,   A valeu pela dica, ja tinha tentado com RowDatabound, mas não nessa logica...   Att.,   Alencar Porto
Responder

Gostei + 0

18/11/2008

[devmedia .net]

Opa, cara preciso que me envie o erro.. não consigo ver sua imagem... Me envio o erro aqui no chamado mesmo... Copia e cola mensagem, pois teria que funcionar..   Abraços   No aguardo   Carlos Jr
Responder

Gostei + 0

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

Aceitar