2016-08-20 46 views
0

我有一個primefaces數據表,它既是可選擇的(單選),也有可拖動的行。我還需要通過按鈕選擇一行(除了能夠選擇行本身)。我的看法代碼:Primefaces dataTable with select and dragable rows,select failed when rows are reordered

<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

如果使用更新表重新排序時,像''工作的呢? – Apostolos

+0

對不起,遲到的迴應。由於出現了更多問題,我停止使用具有可選行和可拖動行的數據表。確實更新表更新索引, –

+0

行,因爲它解決了問題,即使你不再使用它,讓梅爾發佈它作爲接受它的答案,因此問題被視爲「清除」。謝謝。 – Apostolos

回答

0

重新排序行時,您也應該更新表。使用以下

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

請添加此版本的其他版本 – Kukeltje

相關問題