[Logo] Neo Framework Forum
  [Search] Busca   [Recent Topics] Tópicos Recentes   [Members]  Lista de Usuários   [Groups] De volta para a página principal 
[Register] Registrar / 
[Login] Entrar 
Combo dinamico gerando itens vazio.  XML
Índice dos Fóruns -> Dúvidas Ir para a página: 1, 2 Próximo 
Autor Mensagem
guilherme.pimentel
Template
[Avatar]

Membro desde: 21/06/2007 15:52:28
Mensagens: 109
Localização: BELO HORIZONTE
Offline

Eu gerei combos dinamicos porem eles estão gerando itens vazios, alguem sabe oque pode ser?????

GUILHERME A. MUNCK PIMENTEL
DESENVOLVEDOR JEE
BRASIL - MINAS GERAIS - BELO HORIZONTE
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

Tem como vc postar o seu JSP?

O que vc chama de combos dinamicos?

(Se não existir DAO para determinado bean. A lista de um combo não é preenchida sozinha)
guilherme.pimentel
Template
[Avatar]

Membro desde: 21/06/2007 15:52:28
Mensagens: 109
Localização: BELO HORIZONTE
Offline

Estava funcionando normal, mas não sei se foi coincidencia mas começou a dar esse problema logo depois que eu atualizei a versão.... porem eu voltei a versão e o problema continuou.... vc tem ideia de qual pode ser o problema???

Code:
 <%@ taglib prefix="n" uri="neo" %>
 <%@ taglib prefix="t" uri="template" %>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 <script type="text/javascript">
 	function calculaCotaFim(){
 		z = document.getElementsByName('z')[0].value;
 		z = ((z==''))?0:parseFloat(z);
 		profundidade = document.getElementsByName('profundidade')[0].value;
 		profundidade = ((profundidade==''))?0:parseFloat(profundidade);
 		document.getElementsByName('cotaFim')[0].value = profundidade + z;
 	}
 </script>
 <t:entrada>
 	<t:janelaEntrada>
 		<t:tabelaEntrada>
 			<t:property name="id"/>
 			<n:comboReloadGroup useAjax="true">
 				<t:property name="estrutura.area.projeto" selectLabelProperty="descricao" label="Projeto"/>
 				<t:property name="estrutura.area" selectLabelProperty="nome" label="Area"/>
 				<t:property name="estrutura" selectLabelProperty="nome" label="Estrutura"/>
 			</n:comboReloadGroup>
 			<t:property name="codigo"/>
 			<t:property name="descricao" label="Nome"/>
 			<t:property name="x"/>
 			<t:property name="y"/>
 			<t:property name="z" onchange="calculaCotaFim()"/>
 			<t:property name="profundidade" onchange="calculaCotaFim()"/>
 			<t:property readonly="readonly" name="cotaFim" bodyStyleClass="readOnly" />
 			<t:property name="cotaBulbo"/>
 			<t:property name="alerta"/>
 			<t:property name="emergencia"/>
 			<t:property name="local"/>
 			<t:property name="tipo"	itens="${listaTipo}"/>
 			<t:property name="status" itens="${listaStatus}" readonly="readonly" />
 			<t:property name="dataAtualizacao" 				type="hidden"  label=""/>
 			<t:property name="nomeResponsavelAtualizacao" 	type="hidden" label=""/>
 			<t:property name="dataCadastro" 				type="hidden"  label=""/>
 			<t:property name="nomeResponsavelCadastro" 		type="hidden" label=""/>			
 		</t:tabelaEntrada>
 	</t:janelaEntrada>
 </t:entrada>

GUILHERME A. MUNCK PIMENTEL
DESENVOLVEDOR JEE
BRASIL - MINAS GERAIS - BELO HORIZONTE
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

Como está o HTML do combo?

Tem itens e o label tá vazio? ou não tem item nenhum?
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

Talvez fosse interessante.. trocar:

z = document.getElementsByName('z')[0].value;

por

z = form['z'].value;

ou
z = form.z.value;

form é o nome do formulário na página.. vc pode acessar utilizando document.forms['form'] também


(Mas isso não tem a ver com o erro nao.. é só uma dica)
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

Vc também pode trocar

<t:property name="estrutura.area.projeto" selectLabelProperty="descricao" label="Projeto"/>

por

<t:property name="estrutura.area.projeto" />

no bean Projeto vc coloca no getter de descricao

Code:
 @DescriptionProperty
 public String getDescricao(){
     return descricao;
 }
 

O @DescriptionProperty faz com que em todos os combos.. o selectLabelProperty seja o descricao por padrao....


Para o label vc pode colocar @DisplayName("projeto") no getter de projeto no bean Area

guilherme.pimentel
Template
[Avatar]

Membro desde: 21/06/2007 15:52:28
Mensagens: 109
Localização: BELO HORIZONTE
Offline

Valeu pela dica mas o problema é no combo o calculo esta funcionando beleza!!!
HTML DO PROJETO
Code:
 	<table style="" class="tabelaEntrada"  width='100%' cellpadding='1' cellspacing='0'>
 <tr class="entrada1"><td class="labelColumn" >
 				Projeto
 			</td>
 <td class=" propertyColumn"  colspan='1'>
 				
 					<!-- Valor selecionado  -->
 <select name="estrutura.area.projeto" onchange="verificaSubItem(this);;comboReloadF0('estrutura.area.projeto', this.value);"  ><option value='<null>' ></option><option value='br.com.geoexplore.geoenterprise.adm.bean.Projeto[id=41]' >Projeto Itabira</option>
 <option value='br.com.geoexplore.geoenterprise.adm.bean.Projeto[id=222]' >Projeto CVRD</option>
 </select>
 <span class='requiredMark'>*</span>
 <script language='javascript'>
 form['estrutura.area.projeto'].loadItens = function(){
     var executeOnchange = form['estrutura.area.projeto'].value != '<null>' && form['estrutura.area.projeto'].value != '';
     form['estrutura.area.projeto'].wasEmpty = !executeOnchange;
     if(1 == 1){
         limparCombo(form['estrutura.area.projeto'], true , '');
         var listaParametros = '';
         var listaClasses = '';
         ajaxLoadCombo('/gee', form['estrutura.area.projeto'], 'br.com.geoexplore.geoenterprise.adm.bean.Projeto', '', listaClasses, listaParametros, 'descricao', '');
     }
     else {
         limparCombo(form['estrutura.area.projeto'], true, '');
         if(executeOnchange) form['estrutura.area.projeto'].onchange();
     }
 };
 
 form['estrutura.area.projeto'].setItens = function(lista){
       var valorMantido = addItensToCombo(form['estrutura.area.projeto'], lista, false);
        if(!form['estrutura.area.projeto'].wasEmpty && !valorMantido){form['estrutura.area.projeto'].onchange();}
         verificaLista(this);
 };
 
 </script>
 
 					<span id="msg.estrutura.area.projeto"></span>
 				
 				
 			</td>
 </tr>
 


HTML DA AREA

Code:
 <tr class="entrada1"><td class="labelColumn" >
 				Area
 			</td>
 <td class=" propertyColumn"  colspan='1'>
 				
 					<!-- Valor selecionado  -->
 <select name="estrutura.area" onchange="verificaSubItem(this);;comboReloadF0('estrutura.area', this.value);"  ><option value='<null>' ></option></select>
 <span class='requiredMark'>*</span>
 <script language='javascript'>
 form['estrutura.area'].loadItens = function(){
     var executeOnchange = form['estrutura.area'].value != '<null>' && form['estrutura.area'].value != '';
     form['estrutura.area'].wasEmpty = !executeOnchange;
     if(form['estrutura.area.projeto'].value != '<null>' && 1 == 1){
         limparCombo(form['estrutura.area'], true , '');
         var listaParametros = '';
         var listaClasses = '';
         ajaxLoadCombo('/gee', form['estrutura.area'], 'br.com.geoexplore.geoenterprise.adm.bean.Area', '', listaClasses, listaParametros, 'nome', form['estrutura.area.projeto'].value);
     }
     else {
         limparCombo(form['estrutura.area'], true, '');
         if(executeOnchange) form['estrutura.area'].onchange();
     }
 };
 
 form['estrutura.area'].setItens = function(lista){
       var valorMantido = addItensToCombo(form['estrutura.area'], lista, false);
        if(!form['estrutura.area'].wasEmpty && !valorMantido){form['estrutura.area'].onchange();}
         verificaLista(this);
 };
 
 </script>
 
 					<span id="msg.estrutura.area"></span>
 				
 				
 			</td>
 </tr>
 

GUILHERME A. MUNCK PIMENTEL
DESENVOLVEDOR JEE
BRASIL - MINAS GERAIS - BELO HORIZONTE
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

Pelo que eu estou vendo .. existe itens em Projeto... onde os itens ficam vazios?
o problema é no ajax?
ou a página vem errada?
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

O DAO tá certinho?

[o que eu comentei acima eram só dicas, pra vc saber outras formas de fazer as coisas.. aproveitando o embalo.. nao tem a ver com o erro mesmo nao]
guilherme.pimentel
Template
[Avatar]

Membro desde: 21/06/2007 15:52:28
Mensagens: 109
Localização: BELO HORIZONTE
Offline

Projeto DAO

Code:
 package br.com.geoexplore.geoenterprise.adm.dao;
 
 import java.util.List;
 
 import br.com.geoexplore.geoenterprise.adm.bean.Projeto;
 import br.com.geoexplore.geoenterprise.adm.filtro.ProjetoFiltro;
 import br.com.linkcom.neo.controller.crud.FiltroListagem;
 import br.com.linkcom.neo.persistence.QueryBuilder;
 
 
 public class ProjetoDAO extends GeoDAO<Projeto> {
 
 	@Override
 	public void updateListagemQuery(QueryBuilder<Projeto> query, FiltroListagem _filtro) {
         ProjetoFiltro filtro = (ProjetoFiltro) _filtro;
         query.whereLike("projeto.descricao", filtro.getDescricao())
    	 		 .whereLike("projeto.nomeCoordenador", filtro.getNomeCoordenador())
    	 		 .whereLike("projeto.sigla", filtro.getSigla());
 	}	
 	public boolean existeProjetoComSigla(String sigla){
 		List list = this.getHibernateTemplate().find(" select p " +
 													 " from br.com.geoexplore.geoenterprise.adm.bean.Projeto p " +
 													 " where p.sigla = '"+ sigla + "'");
 		return (list.size() != 0);
 	}
 	public boolean existeProjeto(){
 		 return !(new QueryBuilder<Integer>(getHibernateTemplate()).select("count(id)")
 				 		.from(Projeto.class).setUseTranslator(false).unique().equals(new Integer(0)));
 	}	
 }
 


Area DAO

Code:
 public class AreaDAO extends GeoDAO<Area> {
 	@Override
 	public void updateListagemQuery(QueryBuilder<Area> query, FiltroListagem _filtro) {
         AreaFiltro filtro = (AreaFiltro) _filtro;
         query.whereLike("area.nome", filtro.getNome())
         	 .whereLike("area.sigla", filtro.getSigla())
              .where("area.projeto = ?", filtro.getProjeto());
 	}
 	public boolean existeAreaComSigla(Area area){
 		return (new QueryBuilder<Area>(getHibernateTemplate()).from(Area.class)
 															  .where("area.sigla = ?", area.getSigla())
 															  .where("area.projeto.id = ?", area.getProjeto().getId())
 															  .list().size() != 0 );
 	}
 	public boolean existeArea(){
 		 return !(new QueryBuilder<Integer>(getHibernateTemplate()).select("count(id)")
 				 		.from(Area.class).setUseTranslator(false).unique().equals(new Integer(0)));
 	}
 }
 



GUILHERME A. MUNCK PIMENTEL
DESENVOLVEDOR JEE
BRASIL - MINAS GERAIS - BELO HORIZONTE
guilherme.pimentel
Template
[Avatar]

Membro desde: 21/06/2007 15:52:28
Mensagens: 109
Localização: BELO HORIZONTE
Offline

O problema é quando eu troco de projeto e o combo de Area aparece varios itens vazios e no final os itens certos.

GUILHERME A. MUNCK PIMENTEL
DESENVOLVEDOR JEE
BRASIL - MINAS GERAIS - BELO HORIZONTE
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

Vou ter que fazer um projetinho aqui pra tentar reproduzir o erro.. é meio estranho...

Em qualquer versao tá dando isso?
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

Tem como vc mandar o código do GEODAO tb?
guilherme.pimentel
Template
[Avatar]

Membro desde: 21/06/2007 15:52:28
Mensagens: 109
Localização: BELO HORIZONTE
Offline

a ultima 3-3.15

GUILHERME A. MUNCK PIMENTEL
DESENVOLVEDOR JEE
BRASIL - MINAS GERAIS - BELO HORIZONTE
guilherme.pimentel
Template
[Avatar]

Membro desde: 21/06/2007 15:52:28
Mensagens: 109
Localização: BELO HORIZONTE
Offline

Code:
package br.com.geoexplore.geoenterprise.adm.dao;
 
 import java.util.Date;
 
 import br.com.geoexplore.geoenterprise.adm.bean.Usuario;
 import br.com.geoexplore.geoenterprise.adm.util.GeoConstantes;
 import br.com.geoexplore.geoenterprise.geral.bean.GeoBean;
 import br.com.linkcom.neo.core.web.NeoWeb;
 import br.com.linkcom.neo.persistence.GenericDAO;
 import br.com.linkcom.neo.persistence.SaveOrUpdateStrategy;
 
 public class GeoDAO<BEAN extends GeoBean> extends GenericDAO<BEAN> {
 
 	@Override
 	protected SaveOrUpdateStrategy save(Object entity) {
 		GeoBean bean = (GeoBean)entity; 
 		Usuario usuario = (Usuario)NeoWeb.getRequestContext().getSession().getAttribute(GeoConstantes.GEO_USUARIO);
 		bean.setDataAtualizacao(new java.sql.Date(new Date().getTime()));
 		bean.setNomeResponsavelAtualizacao(usuario.getUsuario());
 		if (bean.getId() == null){
 			bean.setDataCadastro(new java.sql.Date(new Date().getTime()));
 			bean.setNomeResponsavelCadastro(usuario.getUsuario());
 		}else{
 			bean.setDataCadastro(bean.getDataCadastro());
 			bean.setNomeResponsavelCadastro(bean.getNomeResponsavelCadastro());
 		}
 		return super.save(entity);
 	}	
 }
 

GUILHERME A. MUNCK PIMENTEL
DESENVOLVEDOR JEE
BRASIL - MINAS GERAIS - BELO HORIZONTE
 
Índice dos Fóruns -> Dúvidas Ir para a página: 1, 2 Próximo 
Ir para:   
Powered by JForum 2.1.7 © JForum Team