如何在日历控件中禁用当前日期的周

时间:2012-08-21 17:17:19

标签: asp.net calendar

我正在尝试在日历控件中禁用当前日期的一周。任何人都可以告诉我如何做到这一点。例如......今天是2012年8月21日。我希望在加载日历时,应该显示从8月20日到8月25日的整周作为已禁用。

2 个答案:

答案 0 :(得分:1)

您好,您可以使用ondayrender

<asp:Calendar ID="id" runat="server" ondayrender="Disabled_DayRender"></asp:Calendar>

protected void Disabled_DayRender(object sender, DayRenderEventArgs e)
    {
        if (condition) //specify your condition on yours days
        {
            e.Day.IsSelectable = false;
            e.Cell.ForeColor = System.Drawing.Color.Gray;
        }
    }

答案 1 :(得分:0)

您可以计算一年中的周数,然后将其与当前日期的周数进行比较。

    protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
   {
       if (GetNumber(e.Day.Date) == GetNumber(DateTime.Now.Date))
       {
           e.Day.IsSelectable = false;
           e.Cell.ForeColor = System.Drawing.Color.Gray;
       }
   }
   public static int GetNumber(DateTime dtDate)
   {
       System.Globalization.CultureInfo ciGetNumber = System.Globalization.CultureInfo.CurrentCulture;
       int returnNumber = ciGetNumber.Calendar.GetWeekOfYear(dtDate, System.Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Sunday);
       return returnNumber;
   }

这样就可以了。感谢Princy。