Usando o DataModel no JSF!

0 respostas
J

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
<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>
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!

Criado 3 de janeiro de 2011
Respostas 0
Participantes 1