1

我的页面上有两个 p:dataTable 元素。我想要一个 ajax 元素分别监听每个数据表上的 rowSelectRadio 事件。问题是这些侦听器正在从两个表中捕获 rowSelectRadio 事件。有什么方法可以限制我正在收听的事件的范围?我想我假设一个 ajax 元素只会在其父组件的范围内侦听,但事实似乎并非如此。

这是一个示例:我希望 rowSelectRadio 事件仅被作为特定数据表的子元素的 ajax 元素捕获。

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