1

ページに 2 つの p:dataTable 要素があります。各データテーブルで個別にrowSelectRadioイベントをリッスンするajax要素が必要です。問題は、これらのリスナーが両方のテーブルから rowSelectRadio イベントをキャプチャしていることです。リッスンしているイベントの範囲を制限する方法はありますか? ajax 要素はその親コン​​ポーネントのスコープ内でのみリッスンすると想定していたと思いますが、そうではないようです。

例を次に示します。特定のデータ テーブルの子である ajax 要素によってのみ、rowSelectRadio イベントがキャッチされるようにしたいと考えています。

<p:panel id="parentPanel">
    <p:dataTable id="dataTable1" >
    <p:ajax event="rowSelectRadio"
    listener="#{myBean.onData1RowSelect}"
    update="parentPanel"/>
        <p:column/>
    </p:dataTable>

    <p:dataTable id="dataTable2" >
    <p:ajax event="rowSelectRadio"
    listener="#{myBean.onData2RowSelect}"
    update="parentPanel"/>
        <p:column/>
    </p:dataTable>
</p:panel>
4

1 に答える 1

1

processに属性を追加しますp:ajax

<p:dataTable id="dataTable2" >
<p:ajax event="rowSelectRadio"
    listener="#{myBean.onData2RowSelect}"
    update="dataTable2" process="@this" />
    <p:column/>
</p:dataTable>

参照: PPR - 部分ツリー プロセス

于 2012-11-15T16:18:00.253 に答える