asp.net Calendar 是微软自带的一款日历控件,除了简单显示日期时间外, 还可以绑定一些需要的事件。
Calendar_DayRender 事件,是在加载都去时间日期时候的方法,用此方法可以在日历对应的每一天上面添加你所需要的事件,下面写一个对应的务实的列子
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
///当日期不是当前月的时候,就去掉它的日期数(就是在本月显示日期的面板上面不显示上月或者下月的多余日期)
if (e.Day.IsOtherMonth)
{
e.Cell.Controls.Clear();
return;
}
//给当前每一个日期单元格添加js ononmouseover 事件 e.Cell.Attributes["onmouseover"] = "mouseov()";
///仅给当前日期添加一个class样式
if (e.Day.Date.ToString("yyyy/MM/dd") == DateTime.Now.ToString("yyyy/MM/dd"))
{
//today是样式的名称
e.Cell.Attributes["class"] = "today";
}
}
}
还有一个就是Calendar_PreRender事件,这个事件我是用来做地区日期自动更改的
比如你想要英文日历就按如下方法
protected void Calendar1_PreRender(object sender, System.EventArgs e)
{
System.Globalization.CultureInfo myinfo = new System.Globalization.CultureInfo("en-US", false);
System.Threading.Thread.CurrentThread.CurrentCulture = myinfo;
}
如果是中文的话就是将上面的en-US改为zh-cn
在Calendar_PreRender里还可以定义一些其他的属性,
for example 星期的名称
private void Calendar1_PreRender(object sender, System.EventArgs e)
{
Thread threadCurrent = Thread.CurrentThread;
CultureInfo ciNew = (CultureInfo)threadCurrent.CurrentCulture.Clone();
ciNew.DateTimeFormat.DayNames = new string[]{"日","一","二","三","四","五","六"};
ciNew.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Sunday;
threadCurrent.CurrentCulture = ciNew;
}