2010-07-04 89 views
2

我對RadCalendar組件不熟悉。如果我的問題是一項基本功能,請耐心等待。Telerik RadCalendar - Specialdays:如何顯示特殊日的日期

我的目的是根據客戶的選擇顯示具有不同BackColor值的選定日子。基本上只改變選定日子的ItemStyle對我來說是可以接受的,但我找不到如何去做? 所以我嘗試了differen方法如下:

我創建SpecialDays在我的日曆

<telerik:RadCalendar AutoPostBack="true" ID="calendar1" runat="server" Width="400px" Height="300px" FirstDayOfWeek="Monday"> 
      <SpecialDays> 
       <telerik:RadCalendarDay TemplateID="temp1"></telerik:RadCalendarDay> 
      </SpecialDays> 
      <SpecialDays> 
       <telerik:RadCalendarDay TemplateID="temp2"></telerik:RadCalendarDay> 
      </SpecialDays> 
      <SpecialDays> 
       <telerik:RadCalendarDay TemplateID="temp3"></telerik:RadCalendarDay> 
      </SpecialDays> 
      <CalendarDayTemplates> 
       <telerik:DayTemplate ID="temp1" runat="server"> 
        <Content> 
         <asp:Label ID="lblTemp1" runat="server"></asp:Label> 
        </Content> 
       </telerik:DayTemplate> 
       <telerik:DayTemplate ID="temp2" runat="server"> 
         <Content> 
          <asp:Label ID="lblTemp2" runat="server"></asp:Label> 
         </Content> 
       </telerik:DayTemplate> 
       <telerik:DayTemplate ID="temp3" runat="server"> 
         <Content> 
          <asp:Label ID="lblTemp3" runat="server"></asp:Label> 
         </Content> 
       </telerik:DayTemplate>      
      </CalendarDayTemplates> 
     </telerik:RadCalendar> 

而且在後面的代碼,我assiging選定天所需的模板當客戶按下選擇按鈕作爲SetAstemp1,SetAstemp2或SetAstemp3:

protected void BtnSetAsTemp1_Click(object sender, EventArgs e) 
    { 
     int daysCount = calendar1.SelectedDates.Count; 

     for (int i = 0; i < daysCount; i++) 
     { 
      RadCalendarDay day = new RadCalendarDay(); 
      day.TemplateID = "temp1"; 
      day.Date = calendar1.SelectedDates[i].Date; 
      calendar1.SpecialDays.Add(day); 

     } 
    } 

但有了這個方法,我不能使用RadCalendar控制嵌入式皮膚。當選定日期分配給特定日期時,單元格的日期不顯示。 我必須在相關的SpecialDay的Content標籤中顯示日期。但是我找不到訪問內容中定義的lblTemp1控件的方法。

如果我的方法不正確,請您指點我正確的方向嗎? 或者任何建議來顯示在lblTemp1.Text日期是讚賞。

謝謝!

回答

1

衝動,我認爲最簡單的方法是爲選定的日期設置掛鉤Telerik日曆的DayRender事件的背景色。我發現this online example可能對您有用。

+0

非常感謝!這正是我所期待的! :) – 2010-07-05 19:15:28

0
RadCalendarDay holiday = new RadCalendarDay(); 
holiday.Date = Datetime.Now;//Your date which you want 
holiday.IsSelectable = false; 
holiday.IsDisabled = true; 
holiday.ToolTip = "NOT AVAILABLE"; 
TableItemStyle style = new TableItemStyle(); 
style.BackColor = Color.HotPink; 
holiday.ItemStyle.CopyFrom(style); 
calendar1.SpecialDays.Add(holiday);