[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 
Mensagens enviadas por: guilherme.pimentel  XML
Perfil de guilherme.pimentel -> Mensagens enviadas por guilherme.pimentel [108] Ir para a página: Anterior  1, 2, 3, 4, 5, 6, 7, 8 Próximo 
Autor Mensagem
Valeu!!!!
O frameWork esta gerando tudo certo porem ele funciona somente para combo... eu precisava que os lists fizesse reload com varios itens selecionados e não com somente um como funciona hoje.
Tem como eu alterar o funcionamento do comboReloadGroup pois eu alterei o combo para um list usando o multiple="true" e size="10"
Code:
			<n:comboReloadGroup useAjax="true">
  				<t:property renderAs="doubleline" multiple="true" name="estrutura" size="10"/>
  				<t:property renderAs="doubleline" multiple="true" name="regua" label="Régua" size="10" />
  			</n:comboReloadGroup>
 


porem quando eu seleciono mais de um ele funciona somente para o ultimo que eu selecionei ....... tem como eu mudar a função interna para que ele filtre a subentidade de acordo com todos que eu selecionar na primeira lista????
no arquivo TabelaResultadosTag.jsp colocar esse codigo

Code:
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 <%@ taglib prefix="n" uri="neo"%>
 <%@ taglib prefix="combo" uri="combo"%>
 <%@ taglib prefix="t" uri="template"%>
 <script type="text/javascript">
 	function alteraClassOver(obj){
 		if (obj.className == 'dataGridBody1'){
 			obj.className = 'dataGridBody1MouseOver';
 		}else{
 			obj.className = 'dataGridBody2MouseOver';
 		}
 	}
 	function alteraClassOut(obj){
 		if (obj.className == 'dataGridBody1MouseOver'){
 			obj.className = 'dataGridBody1';
 		}
 		if (obj.className == 'dataGridBody2MouseOver'){
 			obj.className = 'dataGridBody2';
 		}
 	}
 	function editarRegistro(obj){
                                 // recupera o ultimo TD
 		var td = obj.cells[obj.cells.length-1];
                                // recupera o caminho do segundo link o editar(o primeiro é o imprimir)
 		var href = td.childNodes[1].href; 
                                  // altera o caminho atual com o caminho do editar da linha atual.
 		window.location = href;
 	}
 </script>
 <n:dataGrid  rowonclick="editarRegistro(this)" rowonmouseover="alteraClassOver(this)" rowOnMouseOut="alteraClassOut(this)" styleClass="dataGrid" itens="${TtabelaResultados.itens}" var="${TtabelaResultados.name}" width="100%" cellspacing="1">
 	<n:bean name="${TtabelaResultados.name}" valueType="${TtabelaResultados.valueType}">
 		<n:getContent tagName="acaoTag" vars="acoes">
 			<t:propertyConfig mode="output" renderAs="column">
 				<n:doBody />
 			</t:propertyConfig>
 			<c:if test="${(!empty acoes) || (TtabelaResultados.showEditarLink) || (TtabelaResultados.showExcluirLink) || (TtabelaResultados.showConsultarLink)}">
 				<n:column header="Ação" style="width: 1%; white-space: nowrap; padding-right: 3px;">
 					${acoes}
 						<script language="javascript">
 						imprimirSelecionar(new Array(${n:hierarchy(TtabelaResultados.valueType)}), "${n:escape(n:valueToString(n:reevaluate(TtabelaResultados.name, pageContext)))}", "${n:escape(n:descriptionToString(n:reevaluate(TtabelaResultados.name, pageContext)))}");
 						</script>
 					<c:if test="${TtabelaResultados.showConsultarLink}">
 						<n:link action="consultar" parameters="${n:idProperty(n:reevaluate(TtabelaResultados.name,pageContext))}=${n:id(n:reevaluate(TtabelaResultados.name,pageContext))}">consultar</n:link>
 					</c:if>						
 					<c:if test="${TtabelaResultados.showEditarLink}">
 						<n:link action="editar" parameters="${n:idProperty(n:reevaluate(TtabelaResultados.name,pageContext))}=${n:id(n:reevaluate(TtabelaResultados.name,pageContext))}"></n:link>
 					</c:if>
 					<c:if test="${TtabelaResultados.showExcluirLink}">				
 						<n:link confirmationMessage="Deseja realmente excluir esse registro?" action="excluir" parameters="${n:idProperty(n:reevaluate(TtabelaResultados.name,pageContext))}=${n:id(n:reevaluate(TtabelaResultados.name,pageContext))}">excluir</n:link>
 					</c:if>
 				</n:column>
 			</c:if>
 		</n:getContent>
 	</n:bean>
 </n:dataGrid>


no codigo assim foram incluidas 3 metodos javaScript editarRegistro(this), alteraClassOver(this), alteraClassOut(this) para serem usados na tag TD de cada registro, para que esses metodos sejam acessados nos eventos onclick, onmouseOver e onMouseOut foi alterado a linha da tag <n:dataGrid> com o codigo :

Code:
<n:dataGrid  rowonclick="editarRegistro(this)" rowonmouseover="alteraClassOver(this)" rowOnMouseOut="alteraClassOut(this)" styleClass="dataGrid" itens="${TtabelaResultados.itens}" var="${TtabelaResultados.name}" width="100%" cellspacing="1">
 




no default.css ou em outro que a pagina tenha acesso inserir esse codigo:
Code:
.dataGridBody1MouseOver {
 	background-color:  #D3D3D3;	
 }
 .dataGridBody2MouseOver {
 	background-color: #D3D3D3;	
 }
Como faço para colocar o label em cima do propriedade dentro do formulario???
Funcionou, eu coloquei o seguinte codigo:

Code:
 <script type="text/javascript">
 	function alteraClassOver(obj){
 		if (obj.className == 'dataGridBody1'){
 			obj.className = 'dataGridBody1MouseOver';
 		}else{
 			obj.className = 'dataGridBody2MouseOver';
 		}
 	}
 	function alteraClassOut(obj){
 		if (obj.className == 'dataGridBody1MouseOver'){
 			obj.className = 'dataGridBody1';
 		}
 		if (obj.className == 'dataGridBody2MouseOver'){
 			obj.className = 'dataGridBody2';
 		}
 	}
 	function editarRegistro(obj){
 		var td = obj.cells[obj.cells.length-1];
 		var id = td.childNodes[1].href; 
 		window.location = td.childNodes[1].href;
 	}
 </script>
 <n:dataGrid  rowonclick="editarRegistro(this)" rowonmouseover="alteraClassOver(this)" rowOnMouseOut="alteraClassOut(this)" styleClass="dataGrid" itens="${TtabelaResultados.itens}" var="${TtabelaResultados.name}" width="100%" cellspacing="1">
 


as primeiras duas funções são para alterar o class do TD para que ele mude de cor quando o mouse estiver sobre o registro e quando sair o class voltar ao original, a terceira função é para pegar o link para editar o registro atual.
Como é que eu faço para pegar o endereço para editar o registro corrente da linha??? para alterar a forma de editar.
Valeu!!!! Funcionou certinho!!!!
Estou com um problema agora é na acentuação quando eu passo alguma string que tem acentuação ele mostra no Javascript a string toda desconfigurada, vc já viu isso???
Valeu!!!!
A questão é o seguinte eu fiz a seguinte classes:
Code:
package br.com.geoexplore.geoenterprise.geobarragem.ajax;
 
 import java.io.IOException;
 
 import br.com.linkcom.neo.controller.Controller;
 import br.com.linkcom.neo.controller.MultiActionController;
 import br.com.linkcom.neo.core.web.WebRequestContext;
 ...
 
 @Controller(path="/geobarragem/AjaxNivelPiezometro")
 public class NivelPiezometroAjaxController extends MultiActionController {
 	PiezometroService piezometroService;	
 	
 	public void setPiezometroService(PiezometroService piezometroService) {
 		this.piezometroService = piezometroService;
 	}
 	public void getCoordenadaZPiezometro(WebRequestContext request,Model modelo)throws IOException{
 		Piezometro piezometro = (Piezometro) modelo.getModelo();
 		String teste = piezometroService.load(piezometro).getBeanToJavaScript();
 		request.getServletResponse().getWriter().println(teste);
 	}
 }


e na pagina eu coloquei esse codigo:

Code:
 	piezometro = new Object();
 	function executarAjax(){
 		if (document.getElementsByName("piezometro")[0].value != '<null>')
 		sendRequest('<%=request.getContextPath()%>/geobarragem/AjaxNivelPiezometro?modelo='+document.getElementsByName("piezometro")[0].value,'ACAO=getCoordenadaZPiezometro','POST', ajaxCallback, erroCallback);
 	}
 	function ajaxCallback(data){
 		eval(data);
 		calculaCotaNivelAgua();
 	}
 	function erroCallback(request){
 		alert('Erro no ajax!\n' + request.responseText);
 	}
 



Pelo que eu vi no exemplo que vc colocou em nenhum lugar nas tags vc colocou o caminho da classe. Se não tem que colocar o caminho em nenhum lugar onde esse metodo tem que estar??????
Beleza... eu so respondi pois .... se alguem tentar usar o prototype vai dar esse problema..... mas valeu!!!!!
Tem como vc mostar como eu posso usar esse <ajax:call.../> ???
valeu!!!!
Eu fizo seguinte criei um metodo no bean que é o pai de todo mundo:

Code:
 	@Transient
 	public String getBeanToJavaScript() throws IOException {
 		String retorno = "";
 		try{
 			String nomeBean = this.getClass().toString().substring(this.getClass().toString().lastIndexOf(".")+1).toLowerCase();
 			retorno += nomeBean + " = new Object();\n";
 			Class<? extends Object> classe = this.getClass(); 
 			while (classe != null){
 				retorno += montaScriptBean(nomeBean,classe);
 				classe = classe.getSuperclass();
 			}
 		}catch(Exception e){
 			throw new IOException(e.getMessage());
 		}
 		return retorno;
 	}
 	
 	@Transient
 	private String montaScriptBean(String nomeBean,Class<? extends Object> classe) throws IllegalAccessException, InvocationTargetException {
 		List<Field> campos = Arrays.asList(classe.getDeclaredFields());
 		String camposStr = "";
 		for (Field field: campos){
 			try{
 				if (field.getName().indexOf("List")== -1){
 					String valor = BeanUtils.getProperty(this, field.getName());
 					if (field.getType().equals(String.class) ){
 						if (valor == null)valor = "";
 						camposStr += nomeBean+"."+field.getName()+" = '"+ valor + "';\n" ;
 					}else if (field.getType().equals(Double.class) ){
 						//if (valor != null)valor = valor.replace('.', ',');					
 						camposStr += nomeBean+"."+field.getName()+" = "+ valor + ";\n" ;
 					}else if (field.getType().equals(Integer.class) ){
 						if (valor != null)valor = valor.replace('.', ',');					
 						camposStr += nomeBean+"."+field.getName()+" = "+ valor + ";\n" ;
 					}else if (field.getType().equals(Date.class) ){
 						camposStr += nomeBean+"."+field.getName()+" = "+ valor + ";\n" ;
 					}
 				}
 			}catch(NoSuchMethodException e){}
 		}
 		return camposStr;
 	}
 


O retorno desse metodo é a segunte string:

Code:
 piezometro = new Object(); 
 piezometro.codigo = 'TESTE'; 
 piezometro.descricao = 'TESTE'; 
 piezometro.local = '11111111111111111111111111'; 
 piezometro.tipo = 'A'; 
 ...[e todos os outros metodos]
 


No javaScript tem um metodo eval(str) que interpreta o esta na str como se fosse um codigo JavaScript.

Sendo assim no java script agora eu posso acessar tanto o codigo e a descrição sem ter que fazer dois metodos.
 
Perfil de guilherme.pimentel -> Mensagens enviadas por guilherme.pimentel [108] Ir para a página: Anterior  1, 2, 3, 4, 5, 6, 7, 8 Próximo 
Ir para:   
Powered by JForum 2.1.7 © JForum Team