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,但它总是向我显示最后一个。

任何想法?

谢谢

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 回答