我爱Aspx >> Asp.Net >> DayPilotCalendar:像OutLook一样的 计划任务日程表 控件,for asp.net2.0这个控件看起来不错。
功能:
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"看看上下文菜单
<daypilot:DayPilotMenu ID="DayPilotMenu1" runat="server">
<daypilot:MenuItem Action="JavaScript" JavaScript="alert('Opening event (id {0})');"
Text="Open" />
<daypilot:MenuItem Action="JavaScript" JavaScript="alert('Sending event (id {0})');"
Text="Send" />
<daypilot:MenuItem Action="NavigateUrl" Text="-" />
<daypilot:MenuItem Action="Callback" Command="Delete" Text="Delete (CallBack)" />
<daypilot:MenuItem Action="PostBack" Command="Delete" Text="Delete (PostBack)" />
</daypilot:DayPilotMenu>
这是数据绑定的代码,看起来很熟悉
DayPilotCalendar1.StartDate = DayPilot.Utils.Week.FirstDayOfWeek(DateTime.Today);
if (!IsPostBack)
{
if (Session["AllFeatures"] == null)
Session["AllFeatures"] = DataGenerator.GetData();//生成测试用的数据
DayPilotCalendar1.DataSource = Session["AllFeatures"];//就是设置DataTable做数据源了
DataBind();
}

这一个是数据源的定义
public class DataGenerator

{
public static DataTable GetData()
{
DataTable dt;
dt = new DataTable();
dt.Columns.Add("start", typeof(DateTime));
dt.Columns.Add("end", typeof(DateTime));
dt.Columns.Add("name", typeof(string));
dt.Columns.Add("id", typeof(string));
dt.Columns.Add("column", typeof(string));
DataRow dr;
dr = dt.NewRow();
dr["id"] = 0;
dr["start"] = Convert.ToDateTime("15:50");
dr["end"] = Convert.ToDateTime("15:55");
dr["name"] = "Event 1";
dr["column"] = "A";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["id"] = 1;
dr["start"] = Convert.ToDateTime("16:00");
dr["end"] = Convert.ToDateTime("17:00");
dr["name"] = "Event 2";
dr["column"] = "A";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["id"] = 2;
dr["start"] = Convert.ToDateTime("16:15").AddDays(1);
dr["end"] = Convert.ToDateTime("18:45").AddDays(1);
dr["name"] = "Event 3";
dr["column"] = "A";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["id"] = 3;
dr["start"] = Convert.ToDateTime("16:30");
dr["end"] = Convert.ToDateTime("17:30");
dr["name"] = "Sales Dept. Meeting Once Again";
dr["column"] = "B";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["id"] = 4;
dr["start"] = Convert.ToDateTime("8:00");
dr["end"] = Convert.ToDateTime("9:00");
dr["name"] = "Event 4";
dr["column"] = "B";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["id"] = 5;
dr["start"] = Convert.ToDateTime("22:00");
dr["end"] = Convert.ToDateTime("6:00").AddDays(1);
dr["name"] = "Event 5";
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["id"] = 6;
dr["start"] = Convert.ToDateTime("11:00");
dr["end"] = Convert.ToDateTime("13:00");
dr["name"] = "Event 6";
dt.Rows.Add(dr);

dt.PrimaryKey = new DataColumn[]
{ dt.Columns["id"] };
return dt;
}
}

有demo可以下载的,具体代码里面都有。这里提供的代码也全部都是来自他提供的Demo
vb.net读取dbf、Excel、Access数..[10-10]
ASP.NET基础教程:C#与JAVA的比较[10-10]
vb.net的数组的基类是 System.Ar..[10-08]
VB.net中HOOK的应用(转)[10-08]
asp.net读取数据库乱码解决方案[10-06]
asp.net跳转页面的三种方法比较[10-06]
详细介绍ASP.NET状态保存方法[10-06]
VB.net 基础[10-05]
VB.NET数据库实例[10-05]
利用 ASP.NET 的内置功能抵御 We..[10-05]
C#的Socket程序(TCP)[10-20]
c#中邮件收发处理(POP3,IMAP,SM..[10-20]
数据库 '****' 的日志已满。请备..[10-20]
vb.net读取dbf、Excel、Access数..[10-10]
ASP.NET基础教程:C#与JAVA的比较[10-10]
vb.net的数组的基类是 System.Ar..[10-08]
VB.net中HOOK的应用(转)[10-08]
asp.net读取数据库乱码解决方案[10-06]
asp.net跳转页面的三种方法比较[10-06]
详细介绍ASP.NET状态保存方法[10-06]