我有一个下拉列表,其中包含一个帐号和两个日期字段。如果我更改下拉列表的值,我想重置日期字段。我也有一个搜索按钮,可以使用这些字段(帐户编号,从日期到日期)进行查询。

<fieldset>
    <p:selectOneMenu id="account_search" value="#{accountHistoryBean.account}" converter="accountConverter">
        <f:attribute name="itemsList" value="#{accountHistoryBean.userAccounts}"/>
        <f:selectItems value="#{accountHistoryBean.userAccounts}" var="account" itemLabel="#{account.number}" itemValue="#{account}"/>
        <p:ajax update="start_date_search, end_date_search" event="change" actionListener="#{accountHistoryBean.resetDates}" process="account_search"/>
    </p:selectOneMenu>
<fieldset>

<fieldset>
    <p:calendar value="#{accountHistoryBean.fromDate}" id="start_date_search" pattern="dd/MM/yyyy"/>
</fieldset>

<fieldset>
    <p:calendar value="#{accountHistoryBean.toDate}" id="end_date_search" pattern="dd/MM/yyyy"/>
</fieldset>



<fieldset>
    <p:commandLink styleClass="regular_button" action="#{accountHistoryBean.search}" update=":search :accountHistoryList :accountHistoryList:accountHistTable" >
        <span>#{msj.search}</span>
     </p:commandLink>
 </fieldset>

如果我执行以下操作:
  • 更改“从日期”和“到日期”字段
  • 更改帐户字段(带有ajax的下拉列表)。

  • 然后将日期重置为其默认值。

    但是,如果我执行以下操作:
  • 将“从日期”和“至日期”字段更改为DATEX AND DATEY
  • 按搜索
  • 将“从日期”和“到日期”字段更改为DATEX2和DATEY2
  • 更改帐户字段(带有ajax的下拉列表)。

  • 然后它将日期字段更改为DATEX和DATEY(不是默认值)。

    Bean中的方法如下:
    public void resetDates()
    {
        Calendar calendar = GregorianCalendar.getInstance();
        //By default set toDate as 3/3
        calendar.set(Calendar.MONTH, 2);
        calendar.set(Calendar.DAY_OF_MONTH, 3);
        toDate = calendar.getTime();
        //By default fromDate is one month earlier
        calendar.setTime(toDate);
        calendar.add(Calendar.MONTH, -1);
        fromDate = calendar.getTime();
    }
    
    public String search(){
        //Just update the filters
        lazyDataEntityModel.setUpdateData(true);
        return null;
    }
    

    有什么帮助吗?

    最佳答案

    我变了

    <p:ajax update="start_date_search, end_date_search"
            event="change"
            actionListener="#{accountHistoryBean.resetDates}"
            process="account_search"/>
    

    对于
    <p:ajax update="start_date_search, end_date_search"
            event="change"
            listener="#{accountHistoryBean.resetDates}"
            process="account_search"/>
    

    而且有效。

    谢谢

    10-06 01:18