Я не знаком с компонентом 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.Когда выбранный день назначается особому дню, дата ячейки не отображается.И я должен показать дату в теге Content соответствующего SpecialDay.Но я не смог найти способ доступа к элементу управления lblTemp1, определенному в Контенте.
Не могли бы вы указать мне правильное направление, если мой подход не верен?Или любые предложения по отображению даты в lblTemp1.Text приветствуется.
Спасибо!