将日历控件中不在当前月份当中的日期设置为灰色不可用状态,自己搞了一段时间,拿他没辙,于是在该网站上发了一个贴,请教网友帮我解决这个功能,很多网友的回答不是我想要的答案,但是他们还是愿意努力的给我解决难题,这一点让我值得欣慰。后来看到了一本叫《ASP.NET 4.0 编程技术大全》的书,当我看到日历控件样式的改变时,我偶然间想到了我自己想要的答案了,当时真的很高兴,于是...
关于该功能的实现是这样的:
首先,当然是要在Web窗体的页面放置一个日历控件:
<asp:Calendar ID="Calendar1" runat="server" ondayrender="Calendar1_DayRender"></asp:Calendar>
其次,为该日历控件添加一个名叫DayRender的事件处理程序(触发时机是:),系统会自动的在后置代码文件中添加这样的一个事件处理程序
再次,就是编写后置代码文件啦。如下代码就是我自己写的后置代码程序:
protected void Page_Load(object sender, EventArgs e)
{
//将不在当前月份中的日期设置为灰色
Calendar1.OtherMonthDayStyle.ForeColor = System.Drawing.Color.Gray;
//设置当天日期的颜色
Calendar1.TodayDayStyle.ForeColor = System.Drawing.Color.Red;
}
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
//将不在当前月份中的日期设置为不可用
if (e.Day.IsOtherMonth)
{
e.Day.IsSelectable = false;
}
}
注意:日历控件的样式设置只能在Load事件处理程序中实现,其它的某些功能可以在DayRender事件处理程序中实现