1

由于 (readonlyInput="true") 没有属性/选项<p:calendar>将值重置为 null,因此目前最好的解决方案是使用一些客户端 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" />

然而它不起作用......

问:

如何为AJAXed p:calendar 组件实现重置按钮?

附录:

在这里提出了同样的问题:http: //forum.primefaces.org/viewtopic.php?f= 3&t=27821 。看起来 jQuery 可能是“有罪党”。无论如何,它应该是解决/可解决恕我直言。

4

1 回答 1

1

如果您希望重置将反映在服务器上,您应该action使用 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 回答