日期:2014-05-20  浏览次数:20370 次

求教一个关于asp.net 2.0 Carlendar的样式问题
1.请问想要为日历中的六,日(是这两个字,不是具体日期)单独设置颜色,该怎么做啊?
2.我想在上一月下一月前加上上一年和下一年,怎么办??
3.如何修改上一月下一月这两个箭头的位置(默认离的比较远,不美观)?

------解决方案--------------------
继承一个Carlendar,重写Render方法
------解决方案--------------------
对于第一个问题,你可以为你的Calendar注册这个事件处理例子:

void c_DayRender(object sender, DayRenderEventArgs e)
{
if (e.Day.Date.DayOfWeek == DayOfWeek.Sunday)
e.Cell.BackColor = System.Drawing.Color.Red;
}

这里改变周日的背景。其实你完全可以轻易地将Calendar改造成一个日程表,直接在日历盘上显示每天的主要约会,而不仅仅是日期。

对于你第二个问题,我觉得在Calendar之外自己提供一个下拉列表就可以了。

第三个问题与第二个问题其实一样。如果你需要修改标题行,将年份和月份分别用两个DropDownLis,确实需要重写Render将原来输出的html中的那一行替换成自己的,感觉有30行c#代码就可以写好了。
------解决方案--------------------
写这个代码应该很容易,代码很少,只是需要对控件编写有一点功力而已。这毕竟是个asp.net入门论坛,我就不花这个功夫给你写了。