我有一个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
答案 0 :(得分:0)
重新排序行时,您也应该更新表格。使用以下
<p:ajax event="rowReorder" listener="YOUR_LISTENER" update=":itemTable" />