我不熟悉RadCalendar组件。如果我的问题是一个基本功能,那请求我。
我的目的是根据客户的选择显示具有不同BackColor值的选定日期。基本上只更改选定日期的ItemStyle对我来说是可以接受的,但我找不到怎么做? 所以我尝试了一种不同的方法如下:
我在我的日历中创建了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>
在后面的代码中,当客户端按下选择的按钮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中显示日期的建议都表示赞赏。
谢谢!
答案 0 :(得分:1)
Impulse,我认为最简单的方法是设置挂钩Telerik日历的DayRender事件的选定日期的背景。我发现this online example可能对您有用。
答案 1 :(得分: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);