将primefaces日历日期重置为系统日期

时间:2016-03-01 05:41:56

标签: jsf primefaces calendar reset

我正在使用jsf 2.0和primefaces设计页面技术。在我的页面中,我插入了一个主要日历。当用户单击日历以更改默认日期时,会显示一条警告消息,这是一个包含两个命令按钮的对话框。现在我要做的是当用户点击取消命令按钮时,日期应该更改回默认日期,该日期是在页面加载时从第一次页面填充的。我写了一个java脚本,但它不起作用。

<label>Date<label>
<p:calendar readonlyInput="true" widgetVar="calDate" yearRange="c-20:c+20" navigator="true" id="b1incomeeffectfrom#{incmStatus.index}" value="#{userDate.effectiveFrom}" pattern="dd/mm/yyyy">
  <p:ajax event="dateSelect" oncomplete="checkForDefault(this);" global="false"/>
</p:calendar>

<p:dialog rendered="#{user.Lock}" widgetVar="dlg1" header="Warning" modal="true">
  <h:panelGroup layout="block" styleClass="modal-dialog">
    <h:panelGroup layout="block" styleClass="modal-content">
      <h:panelGroup layout="block" styleClass="modal-body">
        <div class="form-horizontal">
          <h:panelGroup layout="block" styleClass="form-group">
            <h:outputLabel styleClass="col-xs-8 control-label">Are you sure want to change?</h:outputLabel>
          </h:panelGroup>
        </div>
      </h:panelGroup>
      <h:panelGroup layout="block" styleClass="modal-footer">
        <p:commandButton value="Ok" type="button" styleClass="btn btn-primary" onclick="PF('dlg1').hide();PF('dlg2').show();" />
        <p:commandButton value="Cancel" type="button" styleClass="btn btn-primary" onclick="resetDate();" />
      </h:panelGroup>
    </h:panelGroup>
  </h:panelGroup>
</p:dialog>

的javascript

function resetDate(){
  PF('dlg1').hide();
  calDate.setDate(null);
}

1 个答案:

答案 0 :(得分:0)

您的日历值来自您的支持bean(userDate.effectiveFrom)。您必须更改那里的值才能生效

<p:commandButton value="Cancel" type="button" styleClass="btn btn-primary" 
onsuccess="PF('dlg1').hide()" action="#{userDate.resetDate()}" update="calDate" />

class UserDate{
[..]

  public void resetDate(){
    this.effectiveFrom = initialDate;
  }
[..]
}