簡體   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