我有一个素数面数据表,在素数面数据表格中,我有一列,其中包含。问题是,我已经将的默认值设置为false。当我单击/检查时,它仍然将值检索为false。我试了很多次,但不确定为什么它返回错误。请在下面找到示例代码。
<p:dataTable id="review-table" var="item" value="#{demandBean.filterVOList}">
<p:column id="SelectallID" style="text-align: left; width:40px;" rendered="#{demandBean.screeRenderVo.selectAllRenderer}">
<f:facet name="header" >
<h:outputText id="selectId" value="#{demandBean.dmdScreenLabelVO.selectAll}" />
<div></div>
<h:selectBooleanCheckbox id="checkbox1" value="Select All" onclick="checkAll(this)"/>
</f:facet>
<h:selectBooleanCheckbox id="checkbox2" value="#{item.selected}"/>
</p:column>
当我检查并单击保存按钮时,我得到的值为false。我已经写了一个actionListener,下面是与actionListener 相对应的代码
public void saveData(ActionEvent event)
{
System.out.println("Entering the Save :");
selected = isSelected();
System.out.println("value of Selected"+selected);
}
我也尝试过调试代码,但不确定的值为什么显示为false。请协助。提前感谢
您似乎正在将列中所有复选框的值绑定到一个相同的bean属性。这样,值最终将成为列中最后一行的值。
这不是它应该如何使用。
您基本上需要将复选框的值绑定到当前迭代的行对象的属性(数据表的var
属性后面的属性)。
<p:dataTable value="#{bean.items}" var="item">
<p:column>
<p:selectBooleanCheckbox value="#{item.selected}" />
或者,您可以使用<p:column selectionMode="multiple" />
来使用PrimeFaces数据表的内置多选支持(另请参阅showcase示例)。
<p:dataTable value="#{bean.items}" var="item" rowKey="#{item.id}" selection="#{bean.selectedItems}">
<p:column selectionMode="multiple" />