2013-07-12 88 views
0

我正在學習Java Bean,JavaServer Faces。最近我遇到了問題。我有數據表創建選中元素列表

<p:dataTable value="#{someBean.accounts}" var="people"> 
</p dataTable> 

在這張表中有一些關於人的信息。這裏我也列了複選框(組件:<h:selectBooleanCheckbox>)。我可以選中幾個複選框並選擇「刪除選擇的人」按鈕。

我的想法是創建一個程序,它將在按鈕單擊時執行,我將在其中創建選中的人員列表。但在這裏我有問題。我怎樣才能將選中的人添加到這個列表中?我爲id="check#{people.userID}"等複選框添加了不同的ID,但我不知道必須使用bean class中的網頁ID進行操作。

+1

使用PrimeFaces的多行選擇功能是否有任何限制? http://www.primefaces.org/showcase/ui/datatableRowSelectionMultiple.jsf – erencan

+0

如果你處於學習階段,我建議你只學習JSF,而不是使用外部庫作爲PrimeFaces或RichFaces,這可能會混淆你的學習路徑。 –

回答

0

您可以爲您的People類添加一個isCheck變量。

這時可以嘗試

List<People> list= new ArrayList(); 
for(People item : accounts) { 
    if(item.isCheck){ 
    list.add(item); 
} 
} 
0

對於這一點,有您的帳戶自定義的數據類型與映射到該複選框布爾變量的地圖。在提交時,只需瀏覽列表並將所有包含該變量的行添加到新列表即可。我在當前的項目中使用了類似的東西。

<rich:column style="text-align:center;"> 
    <f:facet name="header"> 
     <h:outputText value="Declare"/> 
    </f:facet> 
    <h:selectBooleanCheckbox id="selected" value="#{rBean.selectionMap[selected]}"/> 
</rich:column>