Olá pessoal, preciso de ajuda e/ou conselho, por favor.
Tenho uma página onde tenho um rich:dataTable, ao clicar em uma linha, esta altere de cor de fundo e envie para o managedBean o dado, pois preciso colocar em outro formulário.
Fiz de modo improvisado com JQuery do richfaces, no entanto, na minha opinião está muito gambiarrístico para JSF, gostaria de fazer de modo que o JSF controle isso.
<rich:dataTable value="#{os.listaClientes}" id="resModal" rows="7" binding="#{os.tabela}"
onRowClick="retirar('.cor3');trocar(this); atualizarEntidadeModal('#{item.RECNO}');return false;" columnClasses="cod, pessoa, nome, cpf, rs, nf,rg, insce, tele, telecel"
onRowMouseOver="over(this);return false;" onRowMouseOut="out(this);return false;"
rowClasses="cor1,cor2" var="item" style="width: 1510px;">
.. colunas ...
agora a forma q tá funcionando
agora a form
<h:form id="formModal">
<h:commandButton value="Limpar" image="/resources/imagens/eraser.png" style="width: 32px; height: 32px;" id="btModalLimpar"/>
<rich:spacer width="10px" />
<a4j:commandButton value="Selecionar" image="/resources/imagens/7171_64x64.png" action="#{os.atualizarCliente}"
style="width: 32px; height: 32px;" id="btModalSelecionar"
reRender="outputPanelTabOs" oncomplete="#{rich:component('showModalCliente')}.hide(); return false;">
<!--<f:setPropertyActionListener target="#{os.cliente.recno}" value="j$('formModal:recno').val();" />-->
</a4j:commandButton>
<rich:spacer width="10px" />
<h:commandButton value="Fechar" onclick="#{rich:component('showModalCliente')}.hide(); return false;"
image="/resources/imagens/7143_64x64.png" style="width: 32px; height: 32px;" type="button" id="btModalFechar"/>
<rich:toolTip for="btModalLimpar" value="Limpar" />
<rich:toolTip for="btModalSelecionar" value="Selecionar item"/>
<rich:toolTip for="btModalFechar" value="Fechar" />
<h:inputText value="#{os.os.cliente.recno}" id="idClienteModal" styleClass="unicoCampoComIsso" style="display: none; visibility: hidden; width: 1px; height: 1px;"/>
</h:form>
form com os botões.
JQuery que criei. Ele vai setar o valor da linha nesse inputText abaixo dos botões, que estarão ocultos por causa do style. O jquery fica assim
function atualizarEntidadeModal(id){
var s1 = "#formModal\\:idClienteModal";
try {
s1 = eval("#formModal\\:idClienteModal");
} catch(e){
}
jQuery(s1).val(id);
}
Esse é o do efeito para alterar a cor de fundo.
<rich:jQuery name="over" timing="onJScall" query="addClass('active-row')" />
<rich:jQuery name="out" timing="onJScall" query="removeClass('active-row')" />
<rich:jQuery name="trocar" timing="onJScall" query="addClass('cor3')" />
<rich:jQuery name="retirar" timing="onJScall" query="removeClass('cor3')" />
Tentei isso abaixo, mas claro que carrego esse abaixo e mudo o nome de jquery de cima para evitar conflitos. Acontece que depois que envia os dados para o servidor, ele retira a cor de fundo selecionada.
<a4j:form id="forma4j" ajaxSubmit="true" >
<a4j:jsFunction name="atualizarEntidadeModal" >
<a4j:actionparam name="param1" assignTo="#{os.cliente.recno}" />
</a4j:jsFunction>
</a4j:form>
Procurei na documentação modos de fazer um binding do rich:dataTable e alterar a cor de fundo no managedBean, mas no entanto foi infrutífero.
Pensei em algo como: <rich:colunm rendered="condição 1" style="cor de fundo selecionada" > e <rich:colunm rendered="condição 2" >
Por favor, alguém pode me dar outras alternativas!
Agradeço a atenção de todos, Márcio Eduardo.
--
Você recebeu essa mensagem por que é membro do "JavaSF: JavaServer Faces Group" em
http://groups.google.com/group/javasf
Para postar no grupo envie para
jav...@googlegroups.com