2011-01-07 17 views
1

在我richCalendar.jsp頁,我第一次點擊showCurrentMonth按鈕,使用豐富的顯示當前的月份:日曆。
我選擇其他月份
我點擊SelectedMonth按鈕。我顯示選定的月份名稱。重新初始化當前月份的名字,當我點擊按鈕

我的問題是: 我去任何其他頁面。那麼我來訪問richCalendar.jsp並再次點擊showCurrentMonth按鈕,這次rich:calendar會顯示已經選擇的月份而不是當前月份。
每一次,我想顯示當前月份,當我點擊showCurrentMonth

否則簡單,一旦我點擊showCurrentMonth按鈕,然後我selecte一些其他月份, 然後我點擊showCurrentMonth按鈕,我想表明當前月份的名字。

richCalendar.jsp

<body> 
<h:form id="calendarForm" binding="#{CalenderBean.initForm}">    
    <rich:panel>          
     <a4j:outputPanel id="calendarOutputPanel">    
      <h:panelGrid>              
       <a4j:commandButton value="showCurrentMonth" 
            action="#{CalenderBean.showCurrentMonthAction}" 
            reRender="monthlyPanelGridId,monthlyCalendarId,calendarOutputPanel"/>               

       <h:panelGrid id="monthlyPanelGridId" rendered="#{CalenderBean.monthlyCalendarRendered}" > 
        <rich:calendar boundaryDatesMode="scroll" 
            id="monthlyCalendarId" 
            showWeekDaysBar="false" 
               oncurrentdateselected="event.rich.component.selectDate(event.rich.date)" 
            showFooter="false" 
            popup="false" 
            value="#{CalenderBean.selectedMonth}"/> 

       </h:panelGrid> 

       <h:panelGrid id = "SearchButtonGrid"> 
        <a4j:commandButton id="SelectedMonth" 
         value="SelectedMonth" 
         action="#{CalenderBean.selectedMonthButtonAction}" 
         reRender="calendarOutputPanel"/> 

        <h:outputText value="#{CalenderBean.selectedMonthName}" /> 

       </h:panelGrid> 
      </h:panelGrid>                
    </a4j:outputPanel> 
<rich:panel></h:form></body> 

CalenderBean.java

import java.util.Calendar; 
import java.util.Date;   
import javax.faces.component.html.HtmlForm; 

公共類CalenderBean {

private HtmlForm initForm;  
private boolean monthlyCalendarRendered; 
private Date selectedMonth; 
private String selectedMonthName; 

public CalenderBean() 
{ 
} 

public String showCurrentMonthAction() 
{ 
    monthlyCalendarRendered = true; 

    Calendar calendar = Calendar.getInstance(); 
    int startingDate = calendar.getActualMinimum(Calendar.DAY_OF_MONTH); 
    calendar.set(Calendar.DATE, startingDate); 
    selectedMonth = calendar.getTime();  

    return ""; 
} 

public String selectedMonthButtonAction() 
{   
    selectedMonthName = selectedMonth.toString(); 
    return ""; 
} 

public HtmlForm getInitForm() 
{  
    selectedMonth = null; 
    monthlyCalendarRendered = false; 

    return initForm; 
} 


public void setInitForm(HtmlForm initForm){ 
    this.initForm = initForm; 
} 

public boolean isMonthlyCalendarRendered(){ 
    return monthlyCalendarRendered; 
} 

public void setMonthlyCalendarRendered(boolean monthlyCalendarRendered){ 
    this.monthlyCalendarRendered = monthlyCalendarRendered; 
} 

public Date getSelectedMonth(){ 
    return selectedMonth; 
} 

public void setSelectedMonth(Date selectedMonth){ 
    this.selectedMonth = selectedMonth; 
} 

public String getSelectedMonthName(){ 
    return selectedMonthName; 
} 

public void setSelectedMonthName(String selectedMonthName){ 
    this.selectedMonthName = selectedMonthName; 
} 
} 

我第一次VISI這個頁面完美地顯示當前的月份。然後我去任何其他頁面,然後來看看這個頁面,點擊showCurrentMonth按鈕不顯示當前月份。

幫幫我。 在此先感謝。

回答

0

嘗試從日曆控件中刪除popup = "false"。它會按你的想法工作。

不知道這個奇怪的行爲的原因,但我想有一些渲染問題。