如何获取表格中的所有选定项目?

时间:2011-05-04 15:11:50

标签: datatable jsf-2 primefaces

我的数据表组件有问题。我想在primefaces showcase上创建一个带有复选框的数据表,例如多选示例。这是代码:

<p:dataTable id="table_cats" value="#{fooBean.catsList}" var="cat" selectionMode="single"   selection="#{fooBean.selectedCatsToDelete}">
<p:column selectionMode="multiple">
    <f:facet name="header">Remove</f:facet>
</p:column>
<p:column>
    <f:facet name="header">Cat Name</f:facet>
        <h:outputText value="#{cat.name}" />
    </p:column></p:dataTable>

所以,问题是当选择一个项目时。我不知道如何获取表格中的所有选定项目。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

它们都设置在#{fooBean.selectedCatsToDelete}后面的属性中,因此可以在任何连接到某个命令链接/按钮的动作/侦听器方法中访问它们。

E.g。

<p:commandButton value="Remove" action="#{bean.remove}" />

public void remove() {
    someService.remove(selectedCatsToDelete); // JSF has already put the selected items in selectedCatsToDelete.
}

答案 1 :(得分:0)

您的评论意味着“此示例不起作用”并不十分清楚。有什么错误吗?或者selectedCatsToDelete是空的吗?

首先猜测的是selectionMode="single"<p:dataTable>中的selectionMode="multiple"

尝试从表格标记中删除该属性。