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