【问题标题】:Primefaces get selected Row from DataTable (DataStructure ArrayList<ArrayList>)Primefaces 从 DataTable 中获取选定的行 (DataStructure ArrayList<ArrayList>)
【发布时间】:2017-02-20 21:55:29
【问题描述】:

我正在尝试在dataTable 中使用“多选”。我填充dataTable 的数据模型是ArrayList&lt;ArrayList&gt;。我的问题是 selectEvent 变量始终是 null 并且 bean 中没有可用的数据。

XHTML:

<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)}" />

【问题讨论】:

  • 有效吗??
  • 从侦听器中移除“事件”...它已显式填充!
  • 问题出在 rowKey

标签: jsf primefaces datatable


【解决方案1】:

在dataTable中选择时,rowKey属性很重要,用来标识dataTable的元素,所以rowKey应该是一行的唯一标识。

正如我在您的代码中看到的,rowKey 确实是一团糟,您应该使用唯一标识符,例如实体的主键,或您定义的任何唯一属性。

您可以在 Primefaces 文档中找到它:

RowKey 应该是您的数据模型中的唯一标识符,并由 数据表以查找选定的行。您可以通过以下方式定义此密钥 使用 rowKey 属性或通过绑定实现的数据模型 org.primefaces.model.SelectableDataModel。

【讨论】:

    【解决方案2】:

    rowKey 的语法非常错误

    正确的语法 vor rowKey

    rowKey="#{notselectedContent[0]}"
    

    这是具有我唯一主键的列

    【讨论】:

    • 请接受另一个答案并将您的明确行键添加到它作为评论。另一个答案是这样的;为你做了吗?如果是这样,请给那个人“信用”
    猜你喜欢
    • 1970-01-01
    • 2014-02-25
    • 2011-08-06
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多