对日历控件的DayRender事件进行编程,达到自定义单元格内容的效果。
以下代码是日程管理功能的一个雏形,请大家指正,谢谢。
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
//首先隐藏掉默认的日显示字符
e.Cell.Controls[0].Visible = false;
//自定义一个日显示格式,如果是一个月的第一天就加上月份,否则只显示日
Label lblmonth = new Label();
if (e.Day.Date.Day == 1)
{
lblmonth.Text = e.Day.Date.Month.ToString() + "月" + e.Day.Date.Day.ToString() + "号<br>";
}
else
{
lblmonth.Text = e.Day.Date.Day.ToString() + "号<br>";
}
e.Cell.Controls.Add(lblmonth);
//增加一个链接
HyperLink hlevent_add = new HyperLink();
hlevent_add.Text = "+<br>";
hlevent_add.NavigateUrl = "event_add.aspx?select_date=" + Server.UrlEncode(e.Day.Date.ToLongDateString());
hlevent_add.ToolTip = "添加新的日程";
e.Cell.Controls.Add(hlevent_add);
//从数据库中取得等于当前单元格日期的记录,并添加到日单元格。
webscheduleTableAdapters.user_eventsTableAdapter ta_user_events_bydate = new webscheduleTableAdapters.user_eventsTableAdapter();
DataRowCollection drc_user_event = ta_user_events_bydate.get_user_events_bydate(e.Day.Date).Rows;
foreach (DataRow dr_user_event in drc_user_event)
{
HyperLink hlevent = new HyperLink();
hlevent.Text = dr_user_event.ItemArray[2].ToString() + "<br>";
hlevent.NavigateUrl = "event_edit.aspx?event_id=" + dr_user_event.ItemArray[0].ToString();
hlevent.ToolTip = "主题:" + dr_user_event.ItemArray[2].ToString() + "\n时间:" + dr_user_event.ItemArray[4].ToString() + ":" + dr_user_event.ItemArray[5].ToString() + "\n地点:" + dr_user_event.ItemArray[6].ToString();
e.Cell.Controls.Add(hlevent);
}
发表于 @ 2007年06月28日 17:15:00 | 评论( loading... ) | 举报| 收藏