如何禁用asp:calendar
控件上的未来日期?
例如,今天是 2013 年 10 月 22 日,我想禁用 10 月 23 日以后的日期,并在当前日期时重新启用它们。
您可以使用此技巧禁用日历控件中的未来日期。
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
if (e.Day.Date > DateTime.Today)
{
e.Day.IsSelectable = false;
}
}
您将需要使用 DayRender 方法。
C# 代码背后
public void Calendar1_DayRender(object o, DayRenderEventArgs e)
{
e.Cell.BackColor = System.Drawing.Color.Empty;
e.Cell.ForeColor = System.Drawing.Color.DarkRed;
//if the days are not part of the current month
if (e.Day.IsOtherMonth)
{
e.Cell.Text = "";
}
}
然后在日历中,你需要放置
ASP
<asp:Calendar ID="Calendar1" runat="server" Height="145px" Width="77px" OnDayRender="Calendar1_DayRender"></asp:Calendar>
您将 OnDayRender="Calendar1_DayRender" 添加到日历控件。
希望这可以帮助!
编辑:我误读了。但是,如果您只想“启用”当天而不是其他日子,那么这将起作用..
代码背后
public void Calendar1_DayRender(object o, DayRenderEventArgs e)
{
e.Cell.BackColor = System.Drawing.Color.Empty;
e.Cell.ForeColor = System.Drawing.Color.DarkRed;
if (e.Day.IsToday)
{
e.Cell.BackColor = System.Drawing.Color.Blue;
}
else
{
e.Cell.Text = "";
}
}