[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 
Trocar forma de editar o registro  XML
Índice dos Fóruns -> Dúvidas
Autor Mensagem
guilherme.pimentel
Template
[Avatar]

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

Tem como eu trocar a forma de selecionar o registro para editar ??? A forma que eu gostaria era a seguinte, en quanquer lugar da linha do registro que o usuario clicar o sistema abre a tela de edição sem ter que clicar no botão de editar. Tem como fazer isso???

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 sim...

Voce terá que alterar o TabelaResultados.jsp..

No dataGrid vc coloca assim..

<n:dataGrid rowOnclick="window.location='.....'" ....>

Todos os TRs ganharao o código javascript no evento onclick....

Vc pode colocar qualquer atributo no row... como por exemplo rowonmouseover .. rowonmouseout
guilherme.pimentel
Template
[Avatar]

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

valeu!!!!

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

Como é que eu faço para pegar o endereço para editar o registro corrente da linha??? para alterar a forma de editar.

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

Aí complica um tikinho..

vc vai ter que fazer algo mais ou menos assim

<n:dataGrid .... rowonclick="selectItem(this)">


function selectItem(row){
var td = row.cells[0]; //supondo que o id esteja na primeira coluna
var id = td.childNodes[0].innerHTML;
// faça algo com o id aqui
}
é meio gambiarra mas é o único jeito.. visto que na linha nao é possível saber qual é o bean em questao..

[na arquitetura do neo 4.. seria possivel ]

Se bobear eu coloco algo na versao 3 pra vc poder saber sobre qual bean é a linha.. mas é numa versao mais pra frente.. pq tem um bocadinho de coisa na fila.. heheh
guilherme.pimentel
Template
[Avatar]

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

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.

GUILHERME A. MUNCK PIMENTEL
DESENVOLVEDOR JEE
BRASIL - MINAS GERAIS - BELO HORIZONTE
pedro.goncalves
Equipe
[Avatar]
Membro desde: 17/04/2007 16:12:20
Mensagens: 539
Localização: Belo Horizonte - MG
Offline

Guilherme, tem como você por o código completo?

Pedro Gonçalves
http://pedrogoncalves.com.br
[Email] [WWW] [MSN]
guilherme.pimentel
Template
[Avatar]

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

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;	
 }

GUILHERME A. MUNCK PIMENTEL
DESENVOLVEDOR JEE
BRASIL - MINAS GERAIS - BELO HORIZONTE
pedro.goncalves
Equipe
[Avatar]
Membro desde: 17/04/2007 16:12:20
Mensagens: 539
Localização: Belo Horizonte - MG
Offline

Ah tah!! eu pensei que você havia removido os ícones de editar e excluir da listagem.. ehehe.. mais ficou bastante legal...

té!

Pedro Gonçalves
http://pedrogoncalves.com.br
[Email] [WWW] [MSN]
 
Índice dos Fóruns -> Dúvidas
Ir para:   
Powered by JForum 2.1.7 © JForum Team