如何动态禁用日历控件中的选定日期






3.29/5 (9投票s)
2007年8月14日
2分钟阅读

82756

1525
禁用日历中的选定日期。
引言
日历控件是 dot net web 控件集合的一部分。它位于 System.Web.UI.WebControls 命名空间中。它为用户提供了一种有效的机制,可以以所需的格式选择日期。但是,我们大多数时候都需要的功能之一是禁用一系列日期,作为验证的一部分。通常,我们希望禁用过去的日期,以便用户不会选择它们。这可以通过一些调整来完成。我将在我的文章中对此进行解释。
DayRender 事件
在这种情况下,对我们来说最重要的事件是 OnDayRender 事件。此事件在日历首次呈现在屏幕上时触发。这以循环的方式发生,其中它连续呈现每一天,一次一个。
我们必须在 OnDayRender 事件处理程序中编写我们的逻辑,以在日期符合我们的标准时禁用呈现。
代码
在我的代码中,我有一个日历控件。我想阻止它显示所有过去的日期以及接下来的 7 天。我在一个局部变量 nDaysToBlock 中设置了这个值。
你可以从代码中看到,所有的操作都发生在 DayRender 事件处理程序中。
<code>
protected void myDayRenderMethod(object sener, DayRenderEventArgs e)
{
if (e.Day.Date < (System.DateTime.Now.AddDays(_nDaysToBlock)))
{
e.Day.IsSelectable = false;
e.Cell.Font.Strikeout = true;
}
}
</code>
在这里,我检查正在呈现的日期是否小于当前日期加上要阻止的天数。即,它是否小于从现在开始的 7 天。在这种情况下,我们希望阻止呈现这样的日期,这是通过将 e.Day.IsSelectable 设置为 false 来完成的;
这就是全部了。您已经禁用了所需的日期。您可以更改字体以删除线,以便轻松区分它们。
在运行时,日历将如下所示,选定的日期被禁用。
希望我的代码片段对您有所帮助。
谢谢。