2012-02-29 109 views
2

我想以日曆從當前日期開始的方式自定義日曆控件。
例如今天是2月29日,那麼它應該在日曆中顯示2月9日的第一個日期。自定義日曆控件

是否可以使用asp.net日曆控件?

回答

1

您可以設置SelectedDate propery。假設你的日曆名稱是MYCAL,你可以設置的第一個月日期以這樣的方式

myCal.SelectedDate = New Date(DateTime.Now.Year, DateTime.Now.Month, 1) 

附錄

嘗試使用此代碼:

protected void Page_Load(object sender, EventArgs e) 
{ 
    MyCal.SelectedDate = DateTime.Now.Date; 
} 

protected void MyCal_DayRender(object sender, DayRenderEventArgs e) 
{ 
    if (e.Day.Date < DateTime.Now.Date) 
    { 
     e.Cell.Visible = false; 
    } 
} 

protected void MyCal_VisibleMonthChanged(object sender, MonthChangedEventArgs e) 
{ 
    if (e.NewDate.Month == DateTime.Now.Date.Month - 1) 
    { 
     MyCal.SelectedDate = e.PreviousDate; 
     MyCal.VisibleDate = e.PreviousDate; 
    } 
} 

這樣你:

  1. 設置當前日期
  2. 隱藏前一天
  3. 禁用上個月瀏覽
+0

我想從當前日期開始我的日曆網格。所有過去的日期不應顯示在當前日期格的月份中,但下個月的日期應顯示在當前日期.grid – 2012-02-29 16:26:20

+0

請放棄我們的付款!:您的反饋 – AngeloBad 2012-03-02 09:29:00

+0

感謝您的幫助。 – 2012-03-02 12:06:12

2

默認情況下,<asp:Calendar />控件顯示當前月份。

如果您願意,可以使用VisibleDate屬性覆蓋此屬性。

請您澄清一下您的意思是說它應該從今天的日期開始?在這個月的其餘日子裏會發生什麼?

如果您想要在本月的其他日子變灰或禁用其他日子,請勾選OnDayRender事件,該事件將在每天呈現時運行,並允許您訪問日期和單元格,以便您可以執行類似操作。

protected void Calendar1_OnDayRender(object sender, DayRenderEventArgs e) { 
    if(e.Day.Date < DateTime.Now) { 
     e.Cell.CssClass="disabled"; 
    } 
} 

您需要知道的其他房產是SelectedDate房產。設置這個相當於點擊那個特定的日期。

+0

是可見的屬性可以使用。但我希望我們的日曆從當前日期開始,幷包含下個月的所有日期。 – 2012-02-29 10:52:03