<h:selectBooleanCheckbox> 的值在提交时<p:dataTable> 仍然为 false



我有一个素数面数据表,在素数面数据表格中,我有一列,其中包含。问题是,我已经将的默认值设置为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" />

相关内容

  • 没有找到相关文章

最新更新