如何使用OpenFaces在JSF 1.2中获取数据表的选定行?

时间:2013-05-29 08:05:56

标签: jsf jsf-1.2 openfaces

我使用数据表(OpenFaces)使用属性o:checkboxColumn rowDatas在数据表中选择一行,这将仅过滤选定的行。

<o:checkboxColumn rowDatas="#{tBean.srInventoryList}">
    <f:facet name="header">
        <o:selectAllCheckbox />
    </f:facet>
</o:checkboxColumn>

当我单击一个按钮时,它会显示所有列表,但我只想要其他未选择的行是否有任何属性来过滤行列表。

1 个答案:

答案 0 :(得分:0)

实际上,checkboxColumn的API本身不可能,你需要在bean中添加一些额外的逻辑,例如:

<o:dataTable id="bookMultipleSelection"
             var="book"
             value="#{BookList.books}">
  <o:multipleRowSelection rowDatas="#{BookList.list}"/>
  <o:selectionColumn>
    <f:facet name="header">
      <o:selectAllCheckbox/>
    </f:facet>
  </o:selectionColumn>
  /**other columns here**/
</o:dataTable>   
<o:commandButton execute="bookMultipleSelection" action="#{BookList.updateList}" render="bookMultipleSelection" value="Click ME"/>

在你的支持bean中结束这样的事情:

private List<Book> books;
private List list = new ArrayList();

public List getList() {
    return list;
}

public void setList(List list) {
    this.list = list;
}

public List<Book> getBooks() {
    return books;
}

public  void updateList(){
    books.removeAll(list);
}