数据绑定日程控件






4.82/5 (171投票s)
这些数据控件可以自动显示预定的事件
目录
引言
这些是两个免费控件,`ScheduleCalendar` 和 `ScheduleGeneral`,旨在以表格形式显示计划事件。它们是所谓甘特图的简化版本。它们没有诸如依赖项和里程碑等高级功能,但另一方面,它们使用模板数据绑定,因此开发者可以自行决定要显示的内容。
这些控件可用于各种应用程序:时间表、资源使用规划器、日历、事件调度器、活动、预订、序列、项目管理等...请参阅演示以获取一些示例。
例如,`ScheduleCalendar` 控件会将这些数据
开始时间 | 结束时间 | 事件日期 | 任务 |
9:00 | 11:00 | 3/8/2004 | 历史 |
9:00 | 10:00 | 3/9/2004 | 数学 |
10:00 | 11:00 | 3/9/2004 | 生物 |
11:00 | 12:00 | 3/9/2004 | 历史 |
9:00 | 10:00 | 3/10/2004 | 地质 |
10:00 | 12:00 | 3/10/2004 | 数学 |
9:00 | 10:00 | 3/11/2004 | 经济 |
10:00 | 12:00 | 3/11/2004 | 文学 |
9:00 | 12:00 | 3/12/2004 | 体育 |
9:00 | 11:00 | 3/15/2004 | 历史 |
9:00 | 10:00 | 3/16/2004 | 数学 |
10:00 | 11:00 | 3/16/2004 | 生物 |
11:00 | 12:00 | 3/16/2004 | 历史 |
9:00 | 10:00 | 3/17/2004 | 地质 |
10:00 | 12:00 | 3/17/2004 | 数学 |
9:00 | 10:00 | 3/18/2004 | 经济 |
10:00 | 12:00 | 3/18/2004 | 文学 |
9:00 | 12:00 | 3/19/2004 | 体育 |
转换为此演示文稿

另一个控件是 `ScheduleGeneral`。您可以在此处提供自己的标题(您可以将其视为人物、资源或地点名称)。这是一个电视节目的示例

重叠事件会自动导致表格中添加额外的行或列,从而使其能够正确显示。
重叠项目

这些控件是用 VB.NET 编写的,但它们可以在任何 ASP.NET 应用程序中使用。您可能需要稍微调整下面的一些示例代码以匹配您应用程序中使用的语言。
这些控件至少需要 ASP.NET 2.0 并支持声明性数据绑定和智能标签。它们附带一个名为“documentation2.chm”的文档文件。
许可证
这些控件在 LGPL 许可下免费开源。
安装
安装控件
您可以按标准方式安装控件
- 在您的网站应用程序根目录中创建一个“bin”文件夹(如果尚不存在)
- 将程序集文件 schedule2.dll 复制到 bin 文件夹中
您可能希望将控件添加到编辑器(例如 Visual Studio)的工具箱中。这将允许您轻松地将它们添加到任何 ASP.NET 页面。请按照编辑器的程序将控件添加到工具箱。
为了支持 Visual Studio HTML 视图中的 IntelliSense(并避免一些编译器警告)
- 将 schedule.xsd 文件复制到文件夹
C:\Program Files\Microsoft Visual Studio x\Common7\Packages\schemas\xml
- 修改任何新 Web 表单的
<body>
标签,如下所示:<body xmlns:cc1="urn:http://www.rekenwonder.com/schedule">
,其中cc1
是日程表控件的 TagPrefix(在“Register
”指令中分配的那个)。
安装演示
我添加了一组带内联代码的简单演示文件,可以与 Visual Studio 一起使用。
将包含演示的 zip 文件解压缩到 wwwroot 文件夹的子文件夹中。然后,要么在 IIS 中为该文件夹创建虚拟目录,要么将 schedule2.dll 文件复制到 wwwroot 中的 bin 文件夹。对于演示文件,您只需执行此操作。只需在浏览器中通过地址 https:///<foldername>/demo1.aspx 调用第一个演示页面即可。
使用控件
将控件添加到页面
有两种方法可以将控件添加到您的页面
- 将控件从工具箱拖到页面上(如果它已安装在工具箱中)。请注意选择正确的类型:
ScheduleCalendar
用于每周日历日程表,ScheduleGeneral
用于其他日程表。 - 手动添加代码。将此行添加到页面顶部
<%@ Register TagPrefix="rw" Namespace="rw" Assembly="Schedule2" %>
然后,在您希望显示日程表的位置添加如下标签
<rw:ScheduleGeneral id="Schedule1" runat="server" > <ItemTemplate> </ItemTemplate> </rw:ScheduleGeneral>
当然,对于日历版本,您使用
ScheduleCalendar
。如果您使用代码隐藏,您还应该在页面类中添加对
Schedule
实例的引用,如下所示Protected WithEvents Schedule1 As rw.ScheduleGeneral
在代码隐藏页面中,还要添加此导入语句
Imports rw
设置控件的属性
确保使用适当的设置。
您可以使用任何 DataSourceControl
进行数据绑定。使用智能标签菜单配置此类数据源。
如果您不使用声明性数据绑定,则 DataSource
属性应该是 IEnumerable
或 IListSource
。您不能绑定到 DataReader
,因为控件必须能够内部排序数据。
对于日程表上的每个项目,数据源应提供一个包含开始值、结束值和自定义数据(通常是任务或事件的描述)的单个记录。对于 ScheduleCalendar
控件,当 TimeFieldsContainDate=false
时,您还需要一个日期值。对于 ScheduleGeneral
控件,您还需要一个标题值(用于显示在列/行标题上)。
您需要设置 3 个属性(类似于您必须为绑定 ListBox
或 CheckBoxList
设置的 DataTextField
和 DataValueField
两个属性)
ScheduleCalendar
StartTimeField
:包含事件开始的数据库字段(列)EndTimeField
:包含事件结束的数据库字段DateField
:提供日期的数据库字段。此字段应为“Date
”类型(例外:当TimeFieldsContainDate=true
时,此字段将被忽略,详见下文)。在垂直布局中,此字段将用于列标题。在水平布局中,它将用于行标题。
ScheduleGeneral
DataRangeStartField
:包含事件开始的数据库字段(列)DataRangeEndField
:包含事件结束的数据库字段TitleField
:提供标题的数据库字段。您可以考虑一些有用的标题字段:人名、地点、教室、资源等...)在垂直布局中,此字段将用于列标题。在水平布局中,它将用于行标题。
1) 和 2) 可以认为是时间字段,但通常,任何可排序字段(例如整数)都可以。只有当 ScheduleCalendar
控件的 TimeFieldsContainDate=true
时,它们才应包含日期和时间信息,并且当 FullTimeScale=True
时,它们应至少包含时间信息。
请注意,没有属性指示哪个字段包含“Task
”或“Event
”信息。实际上,此信息可以是任何内容:字段、多个字段的组合等...这之所以可能,是因为“Task
”数据是通过 Item
模板中的数据绑定表达式提供的。其最简单的形式如下
<ItemTemplate>
<%# Eval("taskfieldname") %>
</ItemTemplate>
您可以选择设置 ItemStyleField
。当其值不为空时,具有此名称的数据库字段将用作项目的 CSS 样式类。这允许您从数据源独立设置每个项目的样式。
然后是 FullTimeScale
属性。当为 false
(默认值)时,仅显示数据源中出现的范围值。当为 true
时,显示连续的时间刻度(如 Outlook 日历)。对于 ScheduleGeneral
控件,这要求数据源中的 DataRangeStartField
和 DataRangeEndField
字段的类型为 Date
/Time
。
下图显示了两种情况下相同的项目(午餐从 12:30 到 13:30)
FullTimeScale = false
|
FullTimeScale = true and TimeScaleInterval = 15
|
当 FullTimeScale
为 true
时,您可以设置三个附加属性
TimeScaleInterval
:一个整数值,表示间隔的分钟数(默认值=60)StartOfTimeScale
:一个时间跨度值,设置时间刻度的开始时间(默认值=8:00)EndOfTimeScale
:一个时间跨度值,设置时间刻度的结束时间(默认值=17:00)。此处允许的最高值为 24:00(午夜),应输入为“1.00:00”(一天,零小时和分钟)。
另外两个重要属性是 IncludeEndValue
和 ShowValueMarks
。当 IncludeEndValue
为 True
时,包含结束值的行将包含在事件中。有时,这会导致更符合逻辑的演示。但是,当项目相邻时(例如:一个事件在上午 10:00 结束,另一个事件在同一时间开始),最好将 IncludeEndValue
设置为 False
。否则,这些项目将显示为重叠。在这种情况下,您还可以将 ShowValueMarks
设置为 True
,这将添加指示值的标记,并且值将显示在项目的中间。这两个属性的默认值都为 False
。
下图显示了所有情况下相同的项目(午餐从 12:30 到 13:30)
IncludeEndvalue = False and ShowValueMarks = False
12:30 |
午餐从 12:30 到 13:30 |
13:00 | |
13:30 | |
14:00 |
IncludeEndValue = True (ShowValueMarks is ignored)
12:30 |
午餐从 12:30 到 13:30 |
13:00 | |
13:30 | |
14:00 |
IncludeEndValue = False and ShowValueMarks = True
12:30 | ||
午餐从 12:30 到 13:30 |
||
13:00 | ||
13:30 | ||
14:00 | ||
最后,您可能希望在用户单击日程表中的“空槽”时添加插入新项目的功能。将 EnableEmptySlotClick
属性设置为 true
,并处理 OnEmptySlotClick
事件。您可以选择使用 EmptySlotTooltip
属性为空槽设置工具提示。有关示例,请参阅 demo1
和 demo2
。
对于 ScheduleCalendar
控件,您应该设置这些附加属性
NumberOfDays
:一次显示的天数。默认值为7
,使其成为每周日历。NumberOfRepetitions
:重复天数的次数(默认设置为 1 次重复)。当NumberOfDays=7
时,这是控件中将显示的周数。StartDay
:日历开始的星期几。此属性仅在NumberOfDays
属性设置为7
时使用。默认值为Monday
。StartDate
:开始显示事件的日期。如果此日期与StartDay
属性的星期几不同,控件将在所选日期之前的同一天开始显示。默认值为今天的日期。请参阅演示以了解如何以编程方式设置今天的日期。TimeFieldsContainDate
:当为false
(默认值)时,DateField
属性用于提取每个项目的日期。这意味着项目必须在同一天开始和结束。如果您的某些项目跨越午夜,您应该将TimeFieldsContainDate
设置为true
,并且您应该在StartTimeField
和EndTimeField
字段中提供完整的日期和时间。在这种情况下,DateField
属性将被忽略。
ScheduleGeneral
控件有两个附加属性
AutoSortTitles
:当为true
时,标题会自动排序,即使它们在数据源中未排序。当为false
时,您可以为标题提供自己的排序顺序,但请确保具有相同标题的项目分组在一起,并且对于每个标题,项目首先按DataRangeStartField
排序,然后按DataRangeEndField
排序。(例如:如果您想按名为“SortOrder
”的字段排序,DataRangeStartField
为“StartTime
”,DataRangeEndField
为“EndTime
”,请使用排序表达式“ORDER BY SortOrder ASC, StartTime ASC, EndTime ASC
”)。AutoSortTitles
的默认值为true
。SeparateDateHeader
:当为true
时,将添加额外的单元格范围以将同一日期的所有事件分组。这要求DataRangeStartField
和DataRangeEndField
为DateTime
类型。默认值为False
。
SeparateDateHeader=False
|
SeparateDateHeader= True
|
对于 ScheduleCalendar
和 ScheduleGeneral
控件,您可以使用 Layout
属性轻松地在垂直或水平布局之间切换,甚至在运行时。
提供模板内容
下一步是添加模板内容。
您可以右键单击控件以编辑模板,或者在 HTML 视图中创建模板。还可以查看演示页面中的模板以获取示例。
首先,您应该提供
ItemTemplate
<ItemTemplate>
<%# Eval("taskfieldname") %>
</ItemTemplate>
如果您愿意,可以组合来自数据库中多个字段的信息。您还可以添加控件、图像,就像在 Repeater
或 DataList
控件中一样。
其他模板用于标题。特别是在时间和日期字段的情况下,您可能希望格式化内容以进行正确显示。
对于 ScheduleGeneral
控件
TitleTemplate
您只需显示数据
<TitleTemplate>
<%# Container.DataItem %>
</TitleTemplate>
RangeHeaderTemplate
通常,您可以将范围标题项显示为短时间
<RangeHeaderTemplate>
<%# Convert.ToDateTime(Container.DataItem).ToShortTimeString() %>
</RangeHeaderTemplate>
DateHeaderTemplate
(仅当SeparateDateHeader
设置为true
时使用)
通常,您可以将日期标题项显示为短日期
<DateHeaderTemplate>
<%# Convert.ToDateTime(Container.DataItem).ToShortDateString() %>
</DateHeaderTemplate>
对于 ScheduleCalendar
控件
DateTemplate
您通常可以将日期标题显示为短日期
<TitleTemplate>
<%# Convert.ToDateTime(Container.DataItem).ToShortDateString() %>
</TitleTemplate>
TimeTemplate
通常,您可以将时间标题项显示为短时间
<RangeHeaderTemplate>
<%# Convert.ToDateTime(Container.DataItem).ToShortTimeString() %>
</RangeHeaderTemplate>
如果您不以声明方式绑定到数据源,请不要忘记调用 DataBind()
方法。如果没有此调用,将不会显示任何内容。
最后,是 EmptyDataTemplate
。您可以选择使用此模板提供在数据源中找不到数据时显示的消息。当 FullTimeScale=True
时,ScheduleCalendar
控件不使用此模板。
您可以将控件绑定到 DataSourceControl
,就像您可以使用 GridView
控件一样。使用智能标签菜单和“选择数据源”向导。
Schedule
控件也可以在主/详细信息场景中使用。通常,您可以将其链接到 FormView
或 DetailsView
控件,这允许轻松编辑数据项。确保在 Schedule
控件的数据源中包含主键字段,并将 DataKeyNames
属性设置为该主键字段的名称。
添加 FormView
或 DetailsView
控件后,使用“选择数据源”向导。使用 WHERE
按钮将控件链接到 Schedule
控件。
从 1.5 之前的版本升级
如果您有使用 1.5 之前版本的项目,则需要升级它们。Schedule
类已从程序集中移除,从现在开始您必须使用 ScheduleCalendar
或 ScheduleGeneral
。
如果您的项目包含具有 DisplayMode=Calendar
的 Schedule
控件
- 将控件类型从
Schedule
更改为ScheduleCalendar
(如果您使用代码隐藏文件,只需手动更改页面和代码隐藏文件中的类型) - 将
TitleTemplate
重命名为DateTemplate
(内容相同) - 将
RangeHeaderTemplate
重命名为TimeTemplate
(内容相同) - 将
TitleField
属性重命名为DateField
属性(值相同) - 将
RangeHeaderStartField
属性重命名为StartTimeField
属性(值相同) - 将
RangeHeaderEndField
属性重命名为EndTimeField
属性(值相同) - 将
UseTitleFieldAsDate
属性重命名为TimeFieldsContainDate
属性(值相反,将true
更改为false
,将false
更改为true
) - 将
TitleStyle
标签重命名为DateStyle
,或者如果已存在DateStyle
标签则删除它 - 将
RangeHeaderStyle
标签重命名为TimeStyle
,或者如果已存在TimeStyle
标签则删除它
如果您的项目包含具有 DisplayMode=General
的 Schedule
控件
- 将控件类型从
Schedule
更改为ScheduleGeneral
(如果您使用代码隐藏文件,只需手动更改页面和代码隐藏文件中的类型) - 如果某些对于
DisplayMode=General
不需要但仍被赋值的属性(例如Weeks
、StartDate
和UseTitleFieldAsDate
),请将其删除。
演示页面
下载演示页面以获取示例,向您展示如何使用 Schedule
控件。在每个示例中,您可以通过表单设置属性并添加项目。这些示例使用 Access 数据库作为数据源。
- demo1.aspx 显示了一个日历示例。它还向您展示了如何使用链接按钮删除项目。
- demo2.aspx 显示了一个任务列表示例。它还向您展示了如何使用链接按钮编辑和删除项目。
- demo3.aspx 显示了一个电视节目时间表示例。
- demo4.aspx 显示了一个包含跨午夜项目的日历示例。
工作原理
我决定使用表格而不是图形来显示所有项目。图形可能会给服务器带来沉重负担,最重要的是:表格可以有子控件,如复选框和超链接。通过使用模板,开发人员可以完全控制项目的内容。
我使用 Microsoft 的 TemplatedList 控件的示例代码作为起点。
我创建了一个 BaseSchedule
控件,其中包含 ScheduleGeneral
和 ScheduleCalendar
通用的代码。
首先,从数据源中提取所有信息,以创建行和列标题的列表。任何重复值都被删除,其余的按升序排序。
接下来,构建一个空的表格对象,具有正确的行数和列数。为简单起见,表格总是以垂直布局构建,仅在需要时才转换为水平网页表格。
然后,添加标题项(行标题和列标题)。
接下来,将计划的项目添加到表格主体。最困难的部分是计算每个项目的位置和跨度,合并相应的单元格,并检查项目是否重叠。
最后,将表格对象转换为 HTML 表格。
为了使控件在回发时正常工作,需要以完全相同的方式重建控件树(不设置任何属性)。为了实现这一点,一些信息必须存储在控件的 ViewState
中
- 行数
- 每行中的单元格数
- 每行中的标题单元格数
- 每个项目的位置(行和列索引)
在 CreateChildControls
方法中,此信息用于构建控件树。
在回发时,视图状态将自动应用于每个子控件,并且它们的状态将神奇地恢复。
我派生自 CompositeDataBoundControl
类。我添加了 SelectedValue
属性,以便启用带有 FormView
和 DetailsView
控件的主/详细信息场景。
为了支持设计器,控件派生自 DataBoundControlDesigner
类。
未来
以下是一些改进的想法
- 添加
DeleteCommand
事件 - 添加
TodayStyle
属性(类似于Calendar
控件中的属性) - 提供对从右到左语言的支持
- 添加拖动支持以选择范围(Outlook 风格)
- 支持重复事件
- 自动格式选项
- Windows Forms 版本
如果有人决定扩展此控件,或有任何意见、错误报告或问题,我们很乐意听到您的消息。
关注点
- 模板化控件
- 数据绑定控件
- 控件样式
- 设计器支持
- 属性构建器
- ASP.NET 2.0 数据绑定控件
- ASP.NET 2.0 设计器操作列表
更新历史
所有版本都完全向后兼容,但从 1.5 之前的版本升级到 1.6 或更高版本的情况除外。对于这种特殊情况,请参阅上面的升级说明。在所有其他情况下,您现有的项目将不会停止工作。
2.4.2 版本中的更改
- 能够设置自定义时间范围值数组(适用于时间范围不线性的情况)
- 能够按标题/日期设置项目交替背景样式
- 单元格定位和空单元格合并优化,以实现更紧凑的日历布局
2.4.1 版本中的更改
- 在某些重叠单元格的情况下改进了整个列/行的使用
2.4 版本中的更改
- 简化算法
- 更好的堆叠算法
- 现在在水平模式下支持多次重复(周)
2.3 版本中的更改
- 移除了对 ASP.NET 1.x 的支持。从现在起,需要 ASP.NET 2.0 或更高版本。
- 扩展了对实现
IEnumerable
或IListSource
的任何数据源的支持。因此,例如绑定到ObjectDataSource
或EntityDataSource
是可能的。以前的版本仅支持DataTable
和DataView
。 - 源代码以 Visual Studio 2010 项目形式提供
2.1 版本中的更改
- 根据大众需求,我添加了
OnEmptySlotClick
事件。要使用它,请将EnableEmptySlotClick
属性设置为true
,并可选地为EmptySlotTooltip
属性添加一个值。在您的页面中处理该事件。请参阅demo1
和demo2
获取示例。 - 添加了 documentation2.chm 帮助文件,其中包含 .NET 2.0 版本的文档
2.0 版本中的更改
- 现在在 VS2005 中可以从智能标签菜单编辑模板
1.9 版本中的更改
- 支持 ASP.NET 2.0。
控件现在支持声明性绑定到 ASP.NET 2.0 数据源控件。控件还可以作为主控控件与FormView
或DetailsView
控件连接。与其他 ASP.NET 2.0 数据控件一样,这使您无需编写任何代码即可创建页面。
只有一套源文件,带有条件编译。使用 build.bat 为 ASP.NET 1.x 构建 schedule.dll,使用 build2.bat 为 ASP.NET 2.0 构建 schedule2.dll。不要在同一个项目中使用这两个程序集。如果您仍然想逐页升级,请创建两套具有不同命名空间的源文件(例如rw
和rw2
)。 - 添加了
SelectedValue
属性 - 添加了
SelectedIndexChanged
事件
1.6.1 版本中的更改
- 为
ScheduleCalendar
控件添加了一个新属性NumberOfDays
,以允许天数不是 7。默认值仍然是7
。 - 由于
ScheduleCalendar
控件不再限于 7 天一周,Weeks
属性被NumberOfRepetitions
属性取代。设置Weeks
属性仍然有效,但它不再显示在属性面板中。 - 为
ScheduleCalendar
控件添加了一个新属性StartDay
,以允许起始日期不是Monday
。当NumberOfDays
不是7
时,此属性将被忽略。默认值仍然是Monday
。
1.6 版本中的更改
- 一个新的属性
ShowValueMarks
允许更好地显示相邻项目。请参阅上面的演示和解释。 - 增加了向
ScheduleGeneral
控件添加无内容标题的可能性。这允许您始终显示所有标题,即使在给定期间它们没有任何计划项目。为此,您必须在数据源中为每个要显示的标题添加一个额外行,其中DataRangeStartField
值为NULL
(此解决方案由 K. B. McHugh 提供)。 - 添加了
EmptyDataTemplate
属性。当数据源中未找到行时,使用此模板提供内容(通常,这只是一个消息,说明“未找到数据”)。 - 添加了一个新属性
ItemStyleField
,这是一个可选的数据库字段,提供项目样式(以 css 类名称的形式)。如果未提供,则ItemStyle
属性和AlternatingItemStyle
属性将用于所有项目。此添加由 David Sanders 提供。 - 为
ScheduleGeneral
控件添加了一个新属性AutoSortTitles
。当为true
(默认值)时,控件会根据RangeValueField
中的值按字母顺序自动排序标题(这也是以前版本中使用的方法)。当为false
时,控件不会排序标题,顺序将是数据源中项目的顺序。使用此选项时,请确保在数据绑定之前,数据源中具有相同标题的项目分组在一起。如果标题未分组,可能会出现意外结果。 - 将演示中的数据库文件夹重命名为“App_Data”而不是“db”,为 ASP.NET 2.0 文件夹命名约定做准备。
1.5 版本中的更改
- 代码现在提供一个基类(
BaseSchedule
)和 3 个派生控件:ScheduleCalendar
、ScheduleGeneral
和Schedule
(最后一个仅用于向后兼容)。这将大大简化它们的属性和模板设置,因为每个控件类型只显示相关的属性和模板。
属性和模板也更具自解释性,特别是对于ScheduleCalendar
控件。
升级问题:
目前,您可以保留现有项目不变,因为包含的Schedule
类提供与以前相同的功能,但我计划将来移除此类。因此,我建议您转换现有项目。这只需进行少量更改即可完成。只需一分钟。 - 源代码现在已拆分为每个类的单独文件。
- 为
ScheduleCalendar
和ScheduleGeneral
添加了属性构建器 - 解决了
datasource
属性错误 - 在空单元格中添加了“
” - 数据绑定错误现在将导致页面错误(与其他数据控件的行为相同),而不是默默地被抑制
- 解决了标题中数据绑定错误
- 解决了一些小错误
1.4 版本中的更改
- 支持日历模式下跨午夜的项目(应大众需求)。我添加了一个新属性“
UseTitleFieldAsDate
”,如果您想支持跨午夜的项目,则应将其设置为False
。这些项目将自动拆分为多个项目(每天一个),并添加到日程表中。我添加了一个额外的演示页面来向您展示如何实现这种情况。 - 时间刻度现在可以达到 24:00 小时(中午 12:00 或午夜)。我发现您可以通过在天数后使用点(“1.00:00:00”与 24 小时相同)在编辑器的属性窗格中输入 24:00 小时时间跨度。
- 解决了
DataSource
属性错误(在属性编辑器中显示错误)。 - 添加了 Visual Studio 演示文件
- 解决了标题项目回发错误(由 Deraldo Messner 报告)
- 添加了工具箱位图
- 重要:将现有项目升级到此版本时,您可能需要将“
rw
”命名空间替换为“schedule.rw
”。
1.3 版本中的更改
- 支持设计器模板编辑
- 解决了一些错误
1.2 版本中的更改
- 通过派生自
TemplatedControlDesigner
提供了更好的设计器支持。现在,属性设置中的几乎任何更改都将自动反映在设计器中。 - 解决了在通用模式下使用没有数据的
Schedule
时的错误(由 Beren Longstreet 报告)。 - 添加了 schedule.xsd 文件,用于 Visual Studio 中的额外 IntelliSense 支持
1.1 版本中的更改
- 使源代码在 Option Strict On 编译
- 添加了
FullTimeScale
选项。以前,只使用数据源中出现的时间值。使用此选项,控件将显示连续的时间值范围。