2012-02-29 14 views
2

カレンダーコントロールをカスタマイズして、現在の日付からカレンダーを開始したいと考えています。
など。今日は2月29日で、2月9日の最初の日付をカレンダーに表示する必要があります。カレンダーコントロールをカスタマイズする

asp.netカレンダーコントロールで可能ですか?

答えて

1

SelectedDateプロパティを設定します。

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; 
    } 
} 

このようあなたに:

は、このコードを試してみてください

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

補遺:カレンダー名はマイカルであると仮定すると、あなたは、このように最初の月の日付を設定することができます

  1. 現在の日付を設定する
  2. 前日を非表示
  3. 前月の閲覧を無効にする
+0

カレンダーグリッドを現在の日付から開始したいと考えています。すべての過去の日付は現在の日付グリッドの月に表示すべきではありませんが、翌月の日付は現在の日付に表示されます。グリッド –

+0

お支払いをお待ちください:ご意見 – AngeloBad

+0

ありがとうございます。 –

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

はい可視プロパティが利用可能です。しかし、私はカレンダーを現在の日付から開始し、次の月のすべての日付も含めたいと思います。 –

関連する問題