如果在jsf中选中了某些复选框,如何启用我的按钮?

时间:2019-04-17 16:07:57

标签: jsf primefaces xhtml

我有一个带有许多行的素数数据表,这在运行时是已知的。每行在第一列中都有一个复选框。如果未选中任何复选框,表的页脚包含一个我想禁用的commandButton。否则应启用它。 该表大致如下所示:

<p:dataTable id="table"
             value="#{allgSucheController.pstListe}"
             selection="#{allgSucheController.selectedPruefstelle}"
             var="pst"
             lazy="true">
    <p:column id="checkboxes_header">
        <f:facet id="container1">
            <h:selectBooleanCheckbox id="chk_all">
        </f:facet>
        <h:selectBooleanCheckbox id="checkbox"
                                 value="pst.selected">
        </h:selectBooleanCheckbox>
    </p:column>
    <!-- snip -->
    <f:facet name="footer">
        <span id="c_dwl">
            <h:commandButton id="btnDownload"
                             value="Download"
                             ajax="true"
                             disabled="???">
            </h:commandButton>
        </span>
    </f:facet>
</p:dataTable>

我试图将命令按钮的Disabled属性的值设置为pst.selected,但是没有用。命令按钮已禁用,但如果我选中了任何复选框,则不会启用。

它试图在控制器中调用一个方法,该方法将循环遍历表的行数据,如果至少选择了一个,则返回true,但这也没有用,因为我无法从xhtml调用方法。
我是jsf的新手,在网上找不到解决我问题的任何方法。
如果没有选中任何复选框,如何禁用我的按钮,如果至少选中了一个复选框,如何启用它?

0 个答案:

没有答案