具有 select 和可拖动行的 Primefaces dataTable,select 在重新排序行时失败
Primefaces dataTable with select and dragable rows, select fails when rows are reordered
我有一个 primefaces 数据表,它既可以 select-able(单个 selection)又可以拖动行。我还需要通过按钮 select 一行(除了能够 select 行本身)。我的查看代码是:
<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"。例如,如果我的列表中有两个项目,并且我通过拖动来交换它们,那么单击一个项目的按钮将导致 selecting 另一个。
编辑:Primefaces 版本为 6.0
重新排序行时,您也应该更新 table。使用以下
<p:ajax event="rowReorder" listener="YOUR_LISTENER" update=":itemTable" />
我有一个 primefaces 数据表,它既可以 select-able(单个 selection)又可以拖动行。我还需要通过按钮 select 一行(除了能够 select 行本身)。我的查看代码是:
<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"。例如,如果我的列表中有两个项目,并且我通过拖动来交换它们,那么单击一个项目的按钮将导致 selecting 另一个。
编辑:Primefaces 版本为 6.0
重新排序行时,您也应该更新 table。使用以下
<p:ajax event="rowReorder" listener="YOUR_LISTENER" update=":itemTable" />