2012-11-22 25 views
0

我嘗試從我的bean中獲取選定行索引。如何獲得後臺bean中的選定行索引

在後臺bean我使用監聽

public void updateCurrent() 
{ 
    int rowIndex = dataTable.getRowIndex(); 
    ... 
} 

,但我總是得到-1的rowIndex

P中

:dataTable中我嘗試的過程我的DataTable,並呼籲選擇排聽衆

<p:ajax event="rowSelect" listener="#{locationBean.updateCurrent}" 
      process=":mainTab:mainLocationForm:mainLocationTable"/> 

PrimeFaces版本 - 3.4

請幫助獲取選定的行索引。謝謝。

+0

野生猜測:你綁定'dataTable'在你的XHTML是這樣的:''? – Jens

+0

@Jens是的。我綁定它。並檢查該setter的dataTable調用時,我處理':mainTab:mainLocationForm:mainLocationTable' – esedin

+0

[方法說明](http://grepcode.com/file/repo1.maven.org/maven2/javax.faces/jsf-api getRowIndex()中的/2.1/javax/faces/component/UIData.java#UIData.getRowIndex%28%29)說:「該屬性未啓用值綁定表達式。」 – Jens

回答

0

我不太確定你的方式是檢索rowIndex的正確方法。不知怎的,瀏覽器和服務器需要同步當前選定的行(在瀏覽器中),我不明白這是如何工作的。

也許這可以/應區別使用監聽器參數org.primefaces.event.SelectEvent

做你可以在你的public void updateCurrent()方法擴展到這一點:

public void updateCurrent(SelectEvent mySelectEvent) { 
    // use the mySelectEvent.getObject() method in here and 
    // check what this object has to offer 
} 

我沒有嘗試這樣做,因此無法確認是否你得到的對象有rowIndex(莫名其妙)。但你可以自己輕鬆地嘗試。

編輯:還檢查了這個問題,並從balusC答案: How to get selected row index in JSF datatable?

相關問題