我对如何在primefaces中以编程方式启用/禁用复选框有疑问。 我想通过java代码控制列复选框的启用/禁用状态,如果可能的话。 有人可以帮帮我吗?
这是我的代码:
<p:dataTable id="table" var="some" value="#{someManager.someDataModel}"
selection="#{someManager.chooseSomethings}">
<p:column binding="#{someManager.columnCheckBox}" selectionMode="multiple"/>
<p:column>
<h:outputText value="#{some.nameOfTheSomething}"/>
</p:column>
</p:dataTable>
当我点击数据表的复选框时,所选数据将显示在下面的数据表中:
<p:dataList id="selectedDataList"
value="#{someManager.chooseSomethings}"
var="c" rowIndexVar="i">
<h:outputText id="choseSomeElement" value="#{c.nameOfTheSomething}"/>
<p:commandLink value="x" process="@this" update=":form:selectedDataList" actionListener="#{userManager.remove}"/>
</p:dataList>
在此选择列表中,我可以删除单击“X”commandLink中的任何元素。此commandLink从chooseSomethings List中删除数据。当它发生时,我想再次取消选择(禁用)数据表中的corespondent元素的复选框(恢复初始状态)。
有可能吗?感谢。
答案 0 :(得分:1)
primefaces同步了两个列表。 从chooseSomethings中删除数据时,数据表将显示未选中的复选框。 在这种情况下,您只需将datatable的id放在dataList的update属性中。 像这样:
<p:dataTable id="table" var="some" value="#{someManager.someDataModel}"
selection="#{someManager.chooseSomethings}">
<p:column binding="#{someManager.columnCheckBox}" selectionMode="multiple"/>
<p:column>
<h:outputText value="#{some.nameOfTheSomething}"/>
</p:column>
</p:dataTable>
<p:dataList id="selectedDataList"
value="#{someManager.chooseSomethings}"
var="c" rowIndexVar="i">
<h:outputText id="choseSomeElement" value="#{c.nameOfTheSomething}"/>
<p:commandLink value="x" process="@this" update=":form:selectedDataList,:form:table" actionListener="#{userManager.remove}"/>