Visual Studio 2013WebFormsVisual Studio 2008Visual Studio 2010ArchitectCSSAjaxBeginnerHTMLIntermediateDevVisual StudioJavascript.NETASP.NETC#
DayPilot Scheduler ASP.NET 控件






4.91/5 (50投票s)
灵活的开源调度控件(资源预订、项目管理、时间线和空闲/忙碌可视化、甘特图)
- 下载 DayPilot 5.0 SP2 源代码 - 462 kB [codeproject.com]
- 下载最新源代码 [daypilot.org]
- DayPilot NuGet 包 [nuget.org]
- 在线演示 [daypilot.org]
在线演示
特点
主要功能
- 简洁的外观
- Y 轴上的多个资源
- X 轴上的可自定义时间刻度(每个单元格 = 1 分钟、1 小时、1 天、1 周……)
- 突出显示工作时间(可自定义颜色)
- 自动处理并发事件
- 可自定义事件框(文本、大小、背景色、持续时间条……)
- 可自定义字体和颜色
数据库连接
- 支持
DataSource
和DataSourceID
属性 SqlDataSource
XmlDataSource
DataTable
DataSet
ArrayList
- 及其他数据源……
事件处理
- 自由时间段点击事件(自动 PostBack 或手动 JavaScript 处理)
- 日历事件点击事件(自动 PostBack 或手动 JavaScript 处理)
许可
- 开源(Apache 许可证 2.0)
兼容性
- Internet Explorer 9
- Internet Explorer 10
- Internet Explorer 11
- Edge(最新版本)
- Firefox(最新版本)
- Opera(最新版本)
- Safari(最新版本)
- Chrome(最新版本)
背景信息
DayPilot Scheduler 重用了在 DayPilot Calendar 控件(类似 Outlook 的日视图和周视图日历/调度器)中引入的事件排列算法
DayPilot Calendar 检测重叠事件的块,以便正确显示它们。每个事件框的宽度会根据并发事件的数量进行调整
DayPilot Scheduler 使用相同的排列算法,但布局不同
- 调度器在 X 轴上显示时间。
- 事件框高度固定。
- 并发事件通过增加行高来处理,而不是缩小事件框。
这减少了并发问题:并发事件数量的增加不会降低可读性。
另请参阅
- ASP.NET MVC 3 中的 AJAX 事件日历(调度器),代码量仅 80 行 [codeproject.com]
- DayPilot - 为 ASP.NET 构建类似 Outlook 的日历组件 [codeproject.com]
- 使用 DayPilot 2(类似 Outlook 的 ASP.NET 日历/调度控件) [codeproject.com]
- HTML5 事件日历(开源) [code.daypilot.org]
最小设置示例
<DayPilot:DayPilotScheduler
ID="DayPilotScheduler1"
runat="server"
DataSourceID="SqlDataSource1"
DataStartField="start"
DataEndField="end"
DataTextField="name"
DataValueField="id"
DataResourceField="resource"
StartDate="2009-01-01"
CellDuration="60"
Days="1" >
<Resources>
<DayPilot:Resource Name="Room A" Value="A" />
<DayPilot:Resource Name="Room B" Value="B" />
<DayPilot:Resource Name="Room C" Value="C" />
</Resources>
</DayPilot:DayPilotScheduler>
第一组属性定义了数据绑定
DataSourceID
DataStartField
(开始DateTime
)DateEndField
(结束DateTime
)DataTextField
(事件文本)DataValueField
(事件 ID)DataResourceField
(资源 ID)
DataResourceField
很重要——此列中的值将与资源 ID(Resource.Value
)匹配。
第二组定义了时间范围和刻度
StartDate
(第一个可见日期)Days
(可见天数)CellDuration
(单元格持续时间,以分钟为单位)
最后,需要定义资源(行)
Resource.Name
(行名称)Resource.Value
(行 ID)
使用示例
日视图调度器
设置
Days="1"
CellDuration="60"
StartDate
在代码隐藏中手动设置
DayPilotScheduler1.StartDate = DateTime.Today;
周视图调度器
设置
Days="7"
CellDuration="1440"
使用 Week.FirstDayOfWeek
辅助程序计算每周的第一天
DayPilotScheduler1.StartDate = Week.FirstDayOfWeek(DateTime.Today, DayOfWeek.Monday);
月视图调度器
设置
CellDuration="1440"
在这种情况下,需要手动设置 Days
属性
DayPilotScheduler1.StartDate =
new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
DayPilotScheduler1.Days =
DateTime.DaysInMonth(DateTime.Today.Year, DateTime.Today.Month);
空闲/忙碌可视化
此视图不显示事件名称(DataTextField
绑定到一个空列)。
设置
DurationBarVisible="false"
EventBackColor="#4A71CE"
时间线可视化
在 timeline
视图中,资源被行标题中的事件替换。每行始终只有一个事件。
设置
DurationBarVisible="false"
EventBackColor="#CA2A50"
甘特图
DayPilot Scheduler 可以通过一个开关切换到甘特图模式
ViewType="Gantt"
在甘特图模式下,它将在单独的行中显示每个事件。请参阅甘特图教程 [code.daypilot.org] 中的详细说明。
CSS 主题
您可以使用 CssClassPrefix 属性设置 CSS 主题。有几种预制的 CSS 主题可用。您还可以浏览调度器主题库,或使用在线调度器 CSS 主题设计器设计您自己的主题。
白色 CSS 主题
绿色 CSS 主题
透明 CSS 主题
另请参阅
- DayPilot for ASP.NET WebForms (下载)
- DayPilot for ASP.NET MVC (下载)
- DayPilot for JavaScript/HTML5/jQuery (下载)
DayPilot 教程
- ASP.NET 开源甘特图 [code.daypilot.org]
- ASP.NET 项目管理(开源) [code.daypilot.org]
- HTML5 事件日历(JavaScript) [code.daypilot.org]
- AngularJS 事件日历(JavaScript) [code.daypilot.org]
- ASP.NET iCalendar 导出(Outlook、Google 日历、Mac OS X 日历) [code.daypilot.org]
历史
- 2016 年 1 月 20 日:新发布:DayPilot Lite for ASP.NET WebForms 5.0 SP2
- 2015 年 4 月 16 日:更新了DayPilot Lite for ASP.NET WebForms 5.0
- 2014 年 3 月 5 日:更新了 DayPilot Lite for ASP.NET WebForms 4.1
- 2013 年 11 月 26 日:更新了 DayPilot Lite for ASP.NET WebForms 4.0,添加了新截图,添加了 NuGet 包链接
- 2013 年 5 月 17 日:添加了甘特图,更新了截图
- 2012 年 2 月 25 日:发布了 DayPilot Lite for ASP.NET WebForms 3.2 SP1
- 2012 年 2 月 4 日:发布了 DayPilot Lite for ASP.NET WebForms 3.2
- 2012 年 10 月 13 日:发布了 DayPilot Lite for ASP.NET WebForms 3.1 SP3
- 2012 年 8 月 8 日:发布了 DayPilot Lite for ASP.NET WebForms 3.1 SP2 - 修复了 Visual Studio 2008 项目
- 2012 年 6 月 8 日:发布了 DayPilot Lite for ASP.NET WebForms 3.1 - 允许为 Calendar 和 Scheduler 控件自定义事件格式(使用 BeforeEventRender 事件处理程序自定义颜色、HTML、持续时间条)
- 2008 年 12 月 19 日:发布了 DayPilot Lite 3.0 SP1 - 这是一个修复 bug 的版本(修复了
NonBusinessHours="HideIfPossible"
模式) - 2009 年 4 月 20 日:添加了发布历史记录链接。少量格式更改。