65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.29/5 (9投票s)

2007年8月14日

2分钟阅读

viewsIcon

82756

downloadIcon

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 来完成的;

这就是全部了。您已经禁用了所需的日期。您可以更改字体以删除线,以便轻松区分它们。


在运行时,日历将如下所示,选定的日期被禁用。

<formulas /></formulas />

希望我的代码片段对您有所帮助。

谢谢。

© . All rights reserved.