Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 价值<;h:选择布尔复选框>;内部<;p:dataTable>;提交时仍为假_Jsf_Primefaces_Datatable_Selectbooleancheckbox - Fatal编程技术网

Jsf 价值<;h:选择布尔复选框>;内部<;p:dataTable>;提交时仍为假

Jsf 价值<;h:选择布尔复选框>;内部<;p:dataTable>;提交时仍为假,jsf,primefaces,datatable,selectbooleancheckbox,Jsf,Primefaces,Datatable,Selectbooleancheckbox,我有一个primefaces数据表,在primefaces数据表中,我有一个列,其中包含。问题是,我已将的默认值设置为false。当我单击/检查时,它仍然将值检索为false。我试了很多次,但不确定为什么返回错误。请在下面找到示例代码 <p:dataTable id="review-table" var="item" value="#{demandBean.filterVOList}"> <p:column id="SelectallID" style="text-a

我有一个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。请帮忙。提前感谢

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

这不是应该怎么用的

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


或者,您可以使用
来使用PrimeFaces数据表()的内置多选支持



你好,巴卢斯,非常感谢您的回复。我甚至试过同样的方法。请查找我编辑和更新的帖子代码。但是,当我尝试选择复选框时,即使选中了复选框,也会返回一个假值。另外,我不想使用primefaces选择模式,因为样式与普通样式不同。在处理表单提交期间,当
rendered
属性评估为
false
时,可能会发生这种情况。顺便说一句,除了将值绑定到项目的属性之外,还有另一种方法;通过项标识符将其绑定到
映射
,另请参见(注意,这不会解决“假”值问题,这只是另一种设计方法)。@BalusC我也有同样的问题,但使用时,会调用bean,但不会调用方法。。。你能帮助我吗?
public void saveData(ActionEvent event)
{
    System.out.println("Entering the Save :");
    selected = isSelected();
    System.out.println("value of Selected"+selected);
}
<p:dataTable value="#{bean.items}" var="item">
    <p:column>
        <p:selectBooleanCheckbox value="#{item.selected}" />
<p:dataTable value="#{bean.items}" var="item" rowKey="#{item.id}" selection="#{bean.selectedItems}">
    <p:column selectionMode="multiple" />