这个控件看起来不错。
功能:
1:提供Calendar的ContextMenu,右键调出。回发处理方式多样。支持AJAX
2:视图多种:可以显示天任务,也可以显示多天的,比方说1周内的计划任务
3:提供js事件和回发的Command事件处理。
4:支持DataTable数据绑定,xml数据绑定等
5:动态编辑任务,鼠标多选,拖动。js实现。
6:提供客户化的接口甚多。比方说时间格式,字体之类的。
英文介绍地址:http://www.codeproject.com/useritems/daypilot2.asp
图片:
下载:
http://www.daypilot.org/try.html
介绍:
几个重要属性的介绍
ContextMenuID="DayPilotMenu1" //上下文菜单的ID
DataEndField="end" //日期结束的字段
DataStartField="start" //日期时间开始的字段
DataTextField="name"//要在界面上显示的字段
DataValueField="id"//要绑定的值的字段。和DropDownList相像
Days="7" //这个比较重要。是现实几天数据的。这里设置的就是显示一周的数据。
//事件处理的方式
EventClickHandling="Edit"
EventEditHandling="CallBack"
EventMoveHandling="CallBack"
EventResizeHandling="CallBack"
EventEditHandling=“CallBack”;
EventMoveHandling=“CallBack”;
EventResizeHandling="CallBack"
//事件处理
OnEventClick="DayPilotCalendar1_EventClick"
OnEventEdit="DayPilotCalendar1_EventEdit"
OnEventMenuClick="DayPilotCalendar1_EventMenuClick"
OnEventMove="DayPilotCalendar1_EventMove"
OnEventResize="DayPilotCalendar1_EventResize"
OnTimeRangeSelected="DayPilotCalendar1_TimeRangeSelected"
//其他
HeightSpec="BusinessHours"
Style="left: 54px; top: 45px" TimeRangeSelectedHandling="CallBack"
DataEndField="end" //日期结束的字段
DataStartField="start" //日期时间开始的字段
DataTextField="name"//要在界面上显示的字段
DataValueField="id"//要绑定的值的字段。和DropDownList相像
Days="7" //这个比较重要。是现实几天数据的。这里设置的就是显示一周的数据。
//事件处理的方式
EventClickHandling="Edit"
EventEditHandling="CallBack"
EventMoveHandling="CallBack"
EventResizeHandling="CallBack"
EventEditHandling=“CallBack”;
EventMoveHandling=“CallBack”;
EventResizeHandling="CallBack"
//事件处理
OnEventClick="DayPilotCalendar1_EventClick"
OnEventEdit="DayPilotCalendar1_EventEdit"
OnEventMenuClick="DayPilotCalendar1_EventMenuClick"
OnEventMove="DayPilotCalendar1_EventMove"
OnEventResize="DayPilotCalendar1_EventResize"
OnTimeRangeSelected="DayPilotCalendar1_TimeRangeSelected"
//其他
HeightSpec="BusinessHours"
Style="left: 54px; top: 45px" TimeRangeSelectedHandling="CallBack"
看看上下文菜单
1 <daypilot:DayPilotMenu ID="DayPilotMenu1" runat="server">
2 <daypilot:MenuItem Action="JavaScript" JavaScript="alert('Opening event (id {0})');"
3 Text="Open" />
4 <daypilot:MenuItem Action="JavaScript" JavaScript="alert('Sending event (id {0})');"
5 Text="Send" />
6 <daypilot:MenuItem Action="NavigateUrl" Text="-" />
7 <daypilot:MenuItem Action="Callback" Command="Delete" Text="Delete (CallBack)" />
8 <daypilot:MenuItem Action="PostBack" Command="Delete" Text="Delete (PostBack)" />
9 </daypilot:DayPilotMenu>
10
2 <daypilot:MenuItem Action="JavaScript" JavaScript="alert('Opening event (id {0})');"
3 Text="Open" />
4 <daypilot:MenuItem Action="JavaScript" JavaScript="alert('Sending event (id {0})');"
5 Text="Send" />
6 <daypilot:MenuItem Action="NavigateUrl" Text="-" />
7 <daypilot:MenuItem Action="Callback" Command="Delete" Text="Delete (CallBack)" />
8 <daypilot:MenuItem Action="PostBack" Command="Delete" Text="Delete (PostBack)" />
9 </daypilot:DayPilotMenu>
10
这是数据绑定的代码,看起来很熟悉
1 DayPilotCalendar1.StartDate = DayPilot.Utils.Week.FirstDayOfWeek(DateTime.Today);
2
3 if (!IsPostBack)
4 {
5 if (Session["AllFeatures"] == null)
6 Session["AllFeatures"] = DataGenerator.GetData();//生成测试用的数据
7
8 DayPilotCalendar1.DataSource = Session["AllFeatures"];//就是设置DataTable做数据源了
9 DataBind();
10 }
11
12
2
3 if (!IsPostBack)
4 {
5 if (Session["AllFeatures"] == null)
6 Session["AllFeatures"] = DataGenerator.GetData();//生成测试用的数据
7
8 DayPilotCalendar1.DataSource = Session["AllFeatures"];//就是设置DataTable做数据源了
9 DataBind();
10 }
11
12
这一个是数据源的定义
1public class DataGenerator
2{
3 public static DataTable GetData()
4 {
5 DataTable dt;
6 dt = new DataTable();
7 dt.Columns.Add("start", typeof(DateTime));
8 dt.Columns.Add("end", typeof(DateTime));
9 dt.Columns.Add("name", typeof(string));
10 dt.Columns.Add("id", typeof(string));
11 dt.Columns.Add("column", typeof(string));
12
13 DataRow dr;
14
15 dr = dt.NewRow();
16 dr["id"] = 0;
17 dr["start"] = Convert.ToDateTime("15:50");
18 dr["end"] = Convert.ToDateTime("15:55");
19 dr["name"] = "Event 1";
20 dr["column"] = "A";
21 dt.Rows.Add(dr);
22
23 dr = dt.NewRow();
24 dr["id"] = 1;
25 dr["start"] = Convert.ToDateTime("16:00");
26 dr["end"] = Convert.ToDateTime("17:00");
27 dr["name"] = "Event 2";
28 dr["column"] = "A";
29 dt.Rows.Add(dr);
30
31 dr = dt.NewRow();
32 dr["id"] = 2;
33 dr["start"] = Convert.ToDateTime("16:15").AddDays(1);
34 dr["end"] = Convert.ToDateTime("18:45").AddDays(1);
35 dr["name"] = "Event 3";
36 dr["column"] = "A";
37 dt.Rows.Add(dr);
38
39 dr = dt.NewRow();
40 dr["id"] = 3;
41 dr["start"] = Convert.ToDateTime("16:30");
42 dr["end"] = Convert.ToDateTime("17:30");
43 dr["name"] = "Sales Dept. Meeting Once Again";
44 dr["column"] = "B";
45 dt.Rows.Add(dr);
46
47 dr = dt.NewRow();
48 dr["id"] = 4;
49 dr["start"] = Convert.ToDateTime("8:00");
50 dr["end"] = Convert.ToDateTime("9:00");
51 dr["name"] = "Event 4";
52 dr["column"] = "B";
53 dt.Rows.Add(dr);
54
55 dr = dt.NewRow();
56 dr["id"] = 5;
57 dr["start"] = Convert.ToDateTime("22:00");
58 dr["end"] = Convert.ToDateTime("6:00").AddDays(1);
59 dr["name"] = "Event 5";
60 dt.Rows.Add(dr);
61
62
63 dr = dt.NewRow();
64 dr["id"] = 6;
65 dr["start"] = Convert.ToDateTime("11:00");
66 dr["end"] = Convert.ToDateTime("13:00");
67 dr["name"] = "Event 6";
68 dt.Rows.Add(dr);
69
70 dt.PrimaryKey = new DataColumn[] { dt.Columns["id"] };
71
72 return dt;
73
74 }
75}
76
77
2{
3 public static DataTable GetData()
4 {
5 DataTable dt;
6 dt = new DataTable();
7 dt.Columns.Add("start", typeof(DateTime));
8 dt.Columns.Add("end", typeof(DateTime));
9 dt.Columns.Add("name", typeof(string));
10 dt.Columns.Add("id", typeof(string));
11 dt.Columns.Add("column", typeof(string));
12
13 DataRow dr;
14
15 dr = dt.NewRow();
16 dr["id"] = 0;
17 dr["start"] = Convert.ToDateTime("15:50");
18 dr["end"] = Convert.ToDateTime("15:55");
19 dr["name"] = "Event 1";
20 dr["column"] = "A";
21 dt.Rows.Add(dr);
22
23 dr = dt.NewRow();
24 dr["id"] = 1;
25 dr["start"] = Convert.ToDateTime("16:00");
26 dr["end"] = Convert.ToDateTime("17:00");
27 dr["name"] = "Event 2";
28 dr["column"] = "A";
29 dt.Rows.Add(dr);
30
31 dr = dt.NewRow();
32 dr["id"] = 2;
33 dr["start"] = Convert.ToDateTime("16:15").AddDays(1);
34 dr["end"] = Convert.ToDateTime("18:45").AddDays(1);
35 dr["name"] = "Event 3";
36 dr["column"] = "A";
37 dt.Rows.Add(dr);
38
39 dr = dt.NewRow();
40 dr["id"] = 3;
41 dr["start"] = Convert.ToDateTime("16:30");
42 dr["end"] = Convert.ToDateTime("17:30");
43 dr["name"] = "Sales Dept. Meeting Once Again";
44 dr["column"] = "B";
45 dt.Rows.Add(dr);
46
47 dr = dt.NewRow();
48 dr["id"] = 4;
49 dr["start"] = Convert.ToDateTime("8:00");
50 dr["end"] = Convert.ToDateTime("9:00");
51 dr["name"] = "Event 4";
52 dr["column"] = "B";
53 dt.Rows.Add(dr);
54
55 dr = dt.NewRow();
56 dr["id"] = 5;
57 dr["start"] = Convert.ToDateTime("22:00");
58 dr["end"] = Convert.ToDateTime("6:00").AddDays(1);
59 dr["name"] = "Event 5";
60 dt.Rows.Add(dr);
61
62
63 dr = dt.NewRow();
64 dr["id"] = 6;
65 dr["start"] = Convert.ToDateTime("11:00");
66 dr["end"] = Convert.ToDateTime("13:00");
67 dr["name"] = "Event 6";
68 dt.Rows.Add(dr);
69
70 dt.PrimaryKey = new DataColumn[] { dt.Columns["id"] };
71
72 return dt;
73
74 }
75}
76
77