1

(readonlyInput="true") には値を null にリセットするための属性/オプションがないため<p:calendar>、現在利用できる最善の解決策は、次のようにクライアント JS を使用して値をリセットすることです。

https://stackoverflow.com/a/12325640/396732

ただし、クリア ボタンが AJAX ボタンを制御するとすぐに、新しいカレンダーの値は送信されません。

次のように、終了日ボタンを処理しようとしました。

                <p:calendar id="end-date"
                            widgetVar="myEntityEndDate"
                            value="#{myEntityManager.selectedEndDate}"
                            readonlyInput="true"
                            showOn="button">
                    <!-- update dependent "begin" calendar component: -->
                    <p:ajax event="dateSelect" process="@this" update="begin-date" />
                </p:calendar>
                <p:commandButton icon="ui-icon ui-icon-close"
                                 onclick="myEntityEndDate.setDate(null);"
                                 process="end-date"
                                 update="begin-date end-date" />

しかし、それは機能していません...

Q:

AJAXed p:calendar コンポーネントのリセット ボタンをどのように実装しますか?

補遺:

同じ質問がここで尋ねられました: http://forum.primefaces.org/viewtopic.php?f=3&t=27821。jQuery が「有罪の当事者」になる可能性があるようです。とにかく、それは解決/解決可能なIMHOである必要があります。

4

1 に答える 1

1

リセットをサーバーに反映させたい場合は、actionof を使用する必要がありますp:commandButton

<p:commandButton icon="ui-icon ui-icon-close"
    action="#{myEntityManager.resetDate}"
    process="end-date"
    update="begin-date end-date" />


public void resetDate(){
    selectedEndDate = null;
}
于 2013-01-10T10:20:04.373 に答える