我试图在dataTable
中使用"多重选择"。填充dataTable
的数据模型是ArrayList<ArrayList>
。我的问题是selectEvent
变量始终是null
,并且bean中没有可用的数据。
<p:dataTable id="dt_notselectedContent"
var="notselectedContent"
value="#{verwaltung.alNotSelectedContent}"
rows="5"
rowIndexVar="rowIndex"
selectionMode="multiple"
selection="#{bean.alContent}"
rowKey="#{bean.alNotSelectedContent.get(rowIndex).get(0)}"
paginator="true"
paginatorTemplate="{CurrentPageReport} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10"
rendered="#{not empty verwaltung.alNotSelectedContentForLinkedList}"
style="width: auto; height: auto">
<p:ajax event="rowSelect" listener="#{verwaltung_store.onRowSelect(event)}" />
在dataTable中选择时,rowKey
属性非常重要,用于标识dataTable
的元素,因此rowKey
应该是一行的唯一标识符。
正如我在你的代码中看到的rowKey
真的很乱,你应该使用一个唯一的标识符,例如实体的主键,或任何你定义唯一的属性。
你可以在Primefaces文档中找到:
RowKey应该是数据模型中的唯一标识符,并由数据表查找所选的行。可以定义这个键使用rowKey属性或通过绑定数据模型来实现org.primefaces.model.SelectableDataModel .
rowKey是非常错误的语法
rowKey="#{notselectedContent[0]}"
这个列有我唯一的主键