5

私のメインのjsfには2つのjsfが含まれており、それぞれにフィルタリングオプション付きのテーブルがあります。

これはメインからの短い例です:

  <h:panelGroup id="b1">
                <p:commandButton
                    value="exe"
                    actionListener="#{bean.handle}"
                    rendered="#{bean.render}"
                    update=":mainForm:panel1,:mainForm:panel2">
                </p:commandButton>
            </h:panelGroup>
        </h:panelGrid>
    </p:panel>

    <ui:include src="table1.xhtml" />
    <ui:include src="table2.xhtml" />

問題は、2つのテーブル間でビューを変更するときに、フィルターを削除する必要があることです。2つのテーブルがあるため、clearFiltersを介してクライアント側を使用することはできません。

<p:commandButton
oncomplete="table1Widget.clearFilters() ????"

だから私はhandleメソッドを介してサーバー側に最適な場所になると思っていましたが、フィルターリストは空であり、テーブルも空です

DataTable dt1 = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("mainForm: .... ");

フィルタをリセットするにはどうすればよいですか?

ありがとう

4

3 に答える 3

1

セッションに 2 つのデータテーブルがあります。理由がわかりませんでしたが、使用するdt1.reset()と両方がリセットされます。

私は試した

dt1 = new DataTable();

そしてそれは私の問題を解決しました。

注:dt1.reset()1つのデータテーブルで試したときに機能します。

于 2016-02-10T14:08:41.987 に答える
0

You can use either of the following on that datatable that you have:

  1. dt1..setFilters(null); Will get rid of the datatable filter values

  2. dt1.reset() will also reset the datatable to a virgin state

于 2013-03-22T03:13:01.663 に答える