0

我有一个 primefaces 数据表,在 primefaces 数据表内,我有一列,其中包含 . 问题是,我已将默认值设置为 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。我写了一个Action监听器,下面是actionListener对应的代码

public void saveData(ActionEvent event)
{
    System.out.println("Entering the Save :");
    selected = isSelected();
    System.out.println("value of Selected"+selected);
}

我也尝试过调试代码,但不确定为什么 for 的值显示为 false。请协助。提前致谢

4

1 回答 1

1

您似乎将列中所有复选框的值绑定到一个相同的bean 属性。这样,该值最终将成为该列中的最后一行。

这不是它应该被使用的方式。

您基本上需要将复选框的值绑定到当前迭代的行对象的属性(数据表var属性后面的那个)。

<p:dataTable value="#{bean.items}" var="item">
    <p:column>
        <p:selectBooleanCheckbox value="#{item.selected}" />

或者,您可以使用<p:column selectionMode="multiple" />PrimeFaces 数据表的内置多项选择支持(另请参见展示示例)。

<p:dataTable value="#{bean.items}" var="item" rowKey="#{item.id}" selection="#{bean.selectedItems}">
    <p:column selectionMode="multiple" />
于 2012-08-02T02:31:34.550 回答