我有一个带有许多行的素数数据表,这在运行时是已知的。每行在第一列中都有一个复选框。如果未选中任何复选框,表的页脚包含一个我想禁用的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的新手,在网上找不到解决我问题的任何方法。
如果没有选中任何复选框,如何禁用我的按钮,如果至少选中了一个复选框,如何启用它?