繁体   English   中英

的价值 <h:selectBooleanCheckbox> 内 <p:dataTable> 提交时仍为假

[英]Value of <h:selectBooleanCheckbox> inside <p:dataTable> remains false on submit

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

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

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

您似乎将列中所有复选框的值绑定到one and same 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" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM