使用选择和可拖动的行对dataTable进行Primeface,在重新排序行时选择失败

时间:2016-08-20 12:01:50

标签: jsf-2 primefaces datatable

我有一个primefaces dataTable,它既可选择(单选)又有可拖动的行。我还需要通过按钮选择一行(除了能够选择行本身)。我的观看代码是:

<p:dataTable id="itemTable" widgetVar="itemTable"
   var="item" draggableRows="true"
   value="#{routesModelBean.itemList}" selectionMode="single"
   selection="#{routesModelBean.selectedItem}"
   rowKey="#{item.id}" rowIndexVar="rowId">

<p:column style="width:32px;text-align: center">
    <p:commandButton icon="ui-icon-search"
        onclick="PF('itemTable').unselectAllRows();PF('itemTable').selectRow(#{rowId},false);" type="button">
    </p:commandButton>
</p:column>

问题似乎是“rowIndexVar”。例如,如果我的列表中有两个项目并通过拖动交换它们,则单击一个项目的按钮将导致选择另一个项目。

编辑:Primefaces版本为6.0

1 个答案:

答案 0 :(得分:0)

重新排序行时,您也应该更新表格。使用以下

<p:ajax event="rowReorder" listener="YOUR_LISTENER" update=":itemTable" />