0

データブル内の選択された行のIDを取得したいのですが、代わりに、現在の選択ではなく、前に選択された行を取得しています。私のコードは次のとおりです

<p:dataTable id="translationsTable" var="translation" value="#{videoBean.lyric.polylrcList}" rowKey="#{translation.lang}" selectionMode="single" selection="#{videoBean.selected}"> 
                     <p:ajax event="rowSelect" update="translationsTable"  process="translationsTable" oncomplete="alert(#{videoBean.selected.id});"/> 
</p:dataTable> 

現在のIDが表示されるはずですが、常に最後のIDが表示されます。

何か案が?

ありがとう

4

2 に答える 2

1
 <p:dataTable id="translationsTable" var="translation" value="#{videoBean.lyric.polylrcList}"     rowKey="#{translation.lang}" selectionMode="single" selection="#{videoBean.selected}">

    <p:column>
        #{translation.id}
    </p:column>

    <p:ajax event="rowSelect" update="translationsTable"  process="translationsTable" oncomplete="alert(#{translation.id});"/> 

</p:dataTable>

www.primefaces.orgを使用できます。

于 2012-11-21T18:37:48.893 に答える
0

この問題を解決するための回避策を実行しました。そのように選択された行のprimefacesからjavascript関数を直接実行しています。

public void rowSelected(SelectEvent event) {
    selectedPolyLrc = (Polylrc) event.getObject(); 
    RequestContext.getCurrentInstance().execute("alert( "+selectedPolyLrc.getId()+");");
    System.out.println("SELECTED AREA:" + selectedPolyLrc);
    //...
}

そのように、行が選択された後にjavascript関数が実行されることを常に保証します

于 2012-11-22T10:44:55.970 に答える