HOW TO:控制 Calendar Web 伺服器控制項中的月份巡覽

更新:2007 年 11 月

根據預設,日曆會顯示包含今天日期的月份。使用者按一下日曆標題列中的月份巡覽連結,便可以在 Calendar 控制項中逐月移動。您可以控制使用者是否能使用這些連結。

您也可以利用程式設計來巡覽,如果您希望提供使用者顯示特定月份的另一種方法,這會是很有用的。最後,您可以回應使用者巡覽時所引發的事件。

若要啟用或停用使用者月份巡覽

  • 將 Calendar 控制項的 ShowNextPrevMonth 屬性 (Property) 設定為 true 或 false。如果屬性設定為 false,控制項就不會在標題顯示允許使用者在月份之間移動的 LinkButton 控制項。

    秘訣

    您可以藉由設定以下屬性來變更月份巡覽超連結的外觀:NextMonthTextPrevMonthTextNextPrevFormatNextPrevStyle 屬性。

若要利用程式設計巡覽月份

  • 將控制項的 VisibleDate 屬性設定為您要在月份中顯示的日期。日期可以是該月份中的任一天,但通常會設定為月份的第一天。如果 VisibleDate 屬性為空白 (即設為 DateTime.Empty),目前可見的月份將衍生自 TodaysDate 屬性值。

    以下範例巡覽至 2000 年二月:

    Calendar1.VisibleDate = New Date(2000, 2, 1)
    
    Calendar1.VisibleDate = new DateTime(2000, 2, 1);
    

    變更 VisibleDate 屬性並不會對 TodaysDate、SelectedDayStyleSelectedDates 等屬性產生影響。

如果啟用月份巡覽,則控制項會在使用者移動至另一個月份時引發事件。您可以處理這個事件,以取代或修改預設的月份巡覽。例如,如果在旅行計劃網頁中使用兩個 Calendar 控制項,就可以避免使用者將起始日期的月份設定晚於結束日期的月份。

若要回應月份巡覽事件

  • 為控制項的 VisibleMonthChanged 事件建立方法。當引發事件時,控制項就已經將 VisibleMonth 屬性變更為 1。

    VisibleMonthChanged 事件會接收 MonthChangedEventArgs 型別的單一引數。您可以使用這個引數的下列屬性來判斷或覆寫使用者正在進行的作業:

    屬性

    說明

    PreviousDate

    在使用者按一下月份巡覽按鈕之前所顯示的月份值。您可以將這個屬性值與控制項的 VisibleMonth 屬性值做比較,如此來判斷使用者巡覽的方向。若要取消使用者按一下所產生的結果,請將控制項的 VisibleDate 屬性設定為這個值。

    NewDate

    使用者已經巡覽的月份值。在引發 VisibleMonthChanged 事件之前,就將 VisibleDate 屬性更新為此值。

    Public Sub Calendar1_VisibleMonthChanged(ByVal sender As Object, _
       ByVal e As System.Web.UI.WebControls.MonthChangedEventArgs) _
       Handles Calendar1.VisibleMonthChanged
    
       ' Select the 10th and 25th of each month.
       Calendar1.SelectedDates.Clear()
       Calendar1.SelectedDates.Add(New DateTime(e.NewDate.Year, e.NewDate.Month, 10))
       Calendar1.SelectedDates.Add(New DateTime(e.NewDate.Year, e.NewDate.Month, 25))
    End Sub
    
    private void Calendar1_VisibleMonthChanged (object sender, 
       System.Web.UI.WebControls.MonthChangedEventArgs e)
    {
         // Select the 10th and 25th of each month.
         Calendar1.SelectedDates.Clear();
         Calendar1.SelectedDates.Add(new DateTime(e.NewDate.Year, e.NewDate.Month, 10));
         Calendar1.SelectedDates.Add(new DateTime(e.NewDate.Year, e.NewDate.Month, 25));
    }
    

請參閱

概念

Calendar Web 伺服器控制項概觀