如何自定义日历控件?

时间:2009-04-05 11:58:01

标签: asp.net

我正在使用日历控件显示日历。

每个日期都显示为链接按钮。

但是我想从当前日期开始仅过去30天(日期),以启用客户端点击。在那些日子里,我将在SelectionChanged事件上写一些代码。但目标是必须禁用其他日期才能点击。

他们不应该有链接按钮。

2 个答案:

答案 0 :(得分:1)

尝试编写自定义日渲染功能并将其附加到Calendar控件的DayRender事件中。它应该很简单。

类似于:

<asp:Calendar ID="C1" runat="server" OnDayRender="Calendar1_DayRender" />

private void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
    if (e.Day.Date < BeginningOfDateRange ||
        e.Day.Date > EndOfDateRange)
    {
        e.Cell.BackColor = System.Drawing.Color.LightGray
        e.Day.IsSelectable = False
    }
}

答案 1 :(得分:1)

您可以处理日历控件的 DayRender事件,以自定义每天显示的外观。日历控件显示的每一天都会调用此事件处理程序:

<asp:Calendar ID="Calendar1" runat="server" OnDayRender="Calendar1_DayRender">
</asp:Calendar>

在代码隐藏中:

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
    e.Day.IsSelectable = IsDateValid(e.Day.Date);
}

IsDateValid()是您实施的方法,用于检查是否应启用日期。