Olá. Eu tenho uma h:dataTable que contem dados de objetos Vars. Porém quando é clicado um botão de uma dada linha da tabela preciso apresentar mais detalhes do objeto Vars da linha clicada.
Eu queria que a tabela ficasse invisível e outra parte do código passasse a ser visível quando o botão é clicado e preciso informar a um outro objeto qual objeto Vars foi selecionado.
Porém quando o botão h:commandButton é clicado ele não executa o método que era para ser executado e ainda por cima faz uma troca de tela que nem esta especificado no faces-config.
Seguem os códigos:
classe que tem o h:commandButton
[code]
<f:view>
<html>
<head>
<LINK REL=StyleSheet HREF="estiloIndex.css" TYPE="text/css">
<title>SensorWeb - Instrumentação Virtual</title>
</head>
<script language="javascript">
function aparece() {
document.getElementById('div').style.visibility = "visible";
}
</script>
<body>
<h:form>
<br>
Cliente: <h:outputLabel value="#{Cliente.userName}"/>
<h:dataTable value="#{Cliente.listVariavel}" var="l" id="tabela" rendered="#{Cliente.deveSerRenderizado}">
<h:column>
<f:facet name="header">
<h:outputText value="Sensor"/>
</f:facet>
<h:outputText value="#{l.vars.sigla}">
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Valor"/>
</f:facet>
<h:outputText value="#{l.valorUltimaAq}">
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Última leitura"/>
</f:facet>
<h:outputText value="#{l.textoData}">
</h:outputText>
</h:column>
<h:column id="colBotoes">
<f:facet name="header">
<h:outputText value="gráficos"/>
</f:facet>
<h:commandButton value="lllll" onclick="{aparece()}" action="#{Cliente.pog}"/> ///// BOTÃO!
</h:column>
</h:dataTable>
<div id="div" style="visibility:hidden">
lalalalala
</div>
</h:form>
</body>
</html>
</f:view>[/code]
Classe que lê o objeto Vars
....
private DataModel cdModel = new ListDataModel();
public void args(){
Vars v = (Vars) cdModel.getRowData();
System.out.println("args: "+v.getSigla());
}
Porque que a commondButton não esta executando o o método args()? Pois na janela de saída não é escrito o valor de System.out.println("args: "+v.getSigla()); ???
E ele redireciona para uma outra pagina em branco!
Queria que ele apenas executasse o metodo args() permanecendo na mesma pagina.
Obrigado pela ajuda!