当我点击带有f:ajax的命令按钮时,如何触发h:panelgroup的渲染

时间:2014-05-15 09:46:13

标签: jsf ajax4jsf

大家好,下面有一个命令按钮和小组。页面加载时,panelgroup是隐藏的。到现在为止还挺好。但之后,当我点击commandButton时如何显示panelgorup?

<h:form>     
    <h:commandButton  value="Kitap" >
       <f:ajax id="input1" render="output" event="click"  listener="#{admin.getSatis}" />


     </h:commandButton>     
</h:form> 

<h:panelGroup rendered="false"  id="output" >

                        <h:dataTable  value="#{admin.list}" var="o">


                            <h:column>
                                    <f:facet  name="header">İsim</f:facet>
                                    #{o.isim}
                            </h:column>

                            <h:column>
                                    <f:facet name="header">Soyisim</f:facet>
                                    #{o.soyisim}
                            </h:column>


                        </h:dataTable>

                     </h:panelGroup>

2 个答案:

答案 0 :(得分:2)

您无法显示未呈现的组件。您需要将其换行并刷新其父级。

<h:form>
    <h:commandButton id="input1" value="Kitap" >
        <f:ajax render=":output-wrapper" listener="#{admin.getSatis}" />
    </h:commandButton>     
</h:form> 

<h:panelGroup id="output-wrapper">
    <h:panelGroup rendered="#{myBean.someCondition}" id="output" >
        <h:dataTable  value="#{admin.list}" var="o">
            <h:column>
                    <f:facet  name="header">İsim</f:facet>
                    #{o.isim}
            </h:column>
            <h:column>
                    <f:facet name="header">Soyisim</f:facet>
                    #{o.soyisim}
            </h:column>
        </h:dataTable>
    </h:panelGroup>
</h:panelGroup>

使用myBeansomeCondition初始化为false。在admin.getSatis中,将someCondition设置为true

答案 1 :(得分:-2)

在h:commandButton update(update =“:output”)属性更新'output'。