1

2つのADF面テーブルがAありB、それらの rowSelectionプロパティは「single」に設定されています。ここでの要件は、から1つの行を選択した場合A、からのすべての選択をクリアする必要がBあり、その逆も同様です。だから私はselectionListenersテーブルの両方に登録し、そのメソッド内で実行されるコードは、選択されていないテーブルに対して次のことを行っています:

tablenNotSelected.setSelectedRowKeys(null);

ここで何が欠けていますか?

4

3 に答える 3

2

実際に画面を更新するには、テーブルまたは場合によっては周囲のコンテナに部分的なトリガーを設定する必要があります。

于 2013-01-23T16:34:38.730 に答える
0

選択した行キーをnullに設定しないでください。代わりにgetSelectedRowKeys().RemoveAll();APIを使用してください。

他のテーブルを更新するには、次のようにします。

table_1_selectionListener() {
    RequestContext.getCurrentInstance().addPartialTarget(T2);
}

表2リスナーについても同様です

于 2013-03-09T04:56:40.197 に答える
0
public void clearTableSelection(RichTable table) {
    table.getSelectedRowKeys().clear();
    RowKeySetAttributeChange rks = new RowKeySetAttributeChange(table.getClientId(), "selectedRowKeys", new RowKeySetImpl());
    RequestContext.getCurrentInstance().getChangeManager().addComponentChange(FacesContext.getCurrentInstance(),table, rks);
    AdfFacesContext.getCurrentInstance().addPartialTarget(table);
}
于 2020-05-11T09:50:10.453 に答える