Calendar控件问题

string[,]AllHolidays=newstring[13,32];voidPage_load(objectobj,EventArgse){AllHolidays... string[,] AllHolidays = new string[13, 32];
void Page_load(object obj, EventArgs e)
{
AllHolidays[1,1] = "元旦";
AllHolidays[1,28] = "除夕";
AllHolidays[1,29] = "春节";
AllHolidays[4,5] = "清明节";
AllHolidays[5,1] = "劳动节";
AllHolidays[5, 31] = "端午节";
AllHolidays[10,1] = "国庆节";
AllHolidays[10,6] = "中秋节";
}
void Holidays(object obj, DayRenderEventArgs e)
{
if (AllHolidays[e.Day.Date.Month, e.Day.Date.Day] != "")
e.Cell.Controls.Add(new LiteralControl("<br/><font size=1>"+AllHolidays[e.Day.Date.Month,e.Day.Date.Day]+"</font>"));
}
各路高手,if (AllHolidays[e.Day.Date.Month, e.Day.Date.Day] != "")
这句是判断日期是否为设置的节日,可我不了解,他是怎么遍历月和天的,难道是e.Day.Date.Month这句是遍历了1-12,e.Day.Date.Day是1-31么??最好能给我点详细的说明啊.小弟谢过.
展开
 我来答
亥男056
2009-08-04 · TA获得超过102个赞
知道小有建树答主
回答量:300
采纳率:0%
帮助的人:22.3万
展开全部
同意楼上意见。
void Holidays(object obj, DayRenderEventArgs e)
这个事件是当为 Calendar 控件在控件层次结构中创建每一天时发生。 也就是说Calendar在呈现时,它会根据当时系统的时间来创建本月的每一个(每一天放到一个单元格),当第一天创建时,执行一次void Holidays(object obj, DayRenderEventArgs e)这个事件处理,对比二维数组AllHolidays[e.Day.Date.Month, e.Day.Date.Day] 比如当天是1月1日,则AllHolidays[1, 1] 那么当天就是元旦。然后程序继续创建第二天,又一次执行了void Holidays(object obj, DayRenderEventArgs e)这个事件处理,依次类推创建完一个月的显示。当你单击下一个月时,Calender控件也一样的重新创建每一天,然后又执行了要显示的天数次 void Holidays(object obj, DayRenderEventArgs e)事件。
这样讲你明白了吧?
DayRender事件是Calender呈现时执行了42次(显示6行7列),每次参数e都包含当天的数据,而不是遍历了月和日。
zwl_828
2009-07-27 · TA获得超过1047个赞
知道小有建树答主
回答量:367
采纳率:100%
帮助的人:437万
展开全部
你的理解有些错误,
DayRenderEventArgs的Day属性表示正在 Calendar 中呈现的日期
e.Day.Date.Month是获取Calendar控件当前的月份,同理e.Day.Date.Day
所以该if (AllHolidays[e.Day.Date.Month, e.Day.Date.Day] != "")
语句只是将当前的时间取出放在二维数组与节日进行对比,而非遍历日期。

希望我所说的能对你有所帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
祚胤17
2009-08-05 · TA获得超过786个赞
知道大有可为答主
回答量:1149
采纳率:82%
帮助的人:266万
展开全部
遍历应该在 void Holidays(object obj, DayRenderEventArgs e)的外面,Holidays只是判断是不是/是什么节日
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sq_zhuyi
2009-08-06 · TA获得超过680个赞
知道小有建树答主
回答量:1127
采纳率:0%
帮助的人:1011万
展开全部
不存在遍历,是通过下标的形式直接取值
我们可以把AllHolidays看作一个Table
AllHolidays[2,5] 即是Table.Rows[2].Cells[5],是直接取第3行的第6个单元格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式