在数据表JSF + PrimeFaces中选定行之后重新加载页面

时间:2017-07-11 09:16:37

标签: jsf primefaces jsf-2

我尝试按下按钮会显示数据表的选定行。我使用标记rendered来显示/隐藏此按钮,但只有在重新加载页面时才会呈现它。出于这个原因,我希望当我选择行时,重新加载页面并再次执行标记渲染。

函数conv返回一个布尔值,具体取决于是否应该显示按钮。

知道该怎么做吗?

<p:dataTable id="singleDT" var="inform" value="#{testBean.searchInform}" selectionMode="single" selection="#{testBean.selectedInform}" rowKey={inform.id}">
    <f:facet name="header">
        Single with Row Click
    </f:facet>
    <p:column headerText="Id">
        <h:outputText value="#{inform.id}" />
    </p:column>
    <p:column headerText="Year">
        <h:outputText value="#{inform.year}" />
    </p:column>
    <p:column headerText="Brand">
        <h:outputText value="#{inform.brand}" />
    </p:column>
    <p:column headerText="Color">
        <h:outputText value="#{inform.color}" />
    </p:column>
    <f:facet name="footer">
        <p:commandButton for="singleDT" process="singleDT" update=":form:informeDetail" icon="ui-icon-search" value="Convert" action="#{testBean.Convert}" rendered="#{testBean.conv}"/>
    </f:facet>
</p:dataTable>

1 个答案:

答案 0 :(得分:0)

renderedfalse时,HTML文档将不包含给定的组件,因此无法刷新它。

您应该将<p:commandButton>放在另一个JSF组件中,然后重新渲染该封闭组件。