这个页面演示如何开始使用Wijmo的CollectionView类.
Wijmo5具有.NET开发者熟悉的基于强大数据层的可靠的基础设施。主要的数据绑定接口是 ICollectionView 。 Wijmo包括了几个类来实现 CollectionView 。最基础的是CollectionView类,它使用常规的JavaScript数组作为数据源。
CollectionView类实现了下列的接口:
CollectionView类可以追踪对数据所做的更改。这个功能在必须向服务器提交更改的情景中是非常有用的。
要使用CollectionView类,先声明它并传入一个常规数组作为数据源。然后使用items属性访问视图。
这里集合会展示在FlexGrid中。在应用中开始使用CollectionView类的步骤:
因为实现了ICollectionView接口,CollectionView可以管理当前记录。
这个样例演示如何使用CollectionView类提供的API来管理当前记录。
在这种情况下,我们使用currentPosition属性获取集合中当前记录的位置。 我们也会使用moveCurrentTo(item), moveCurrentToFirst(), moveCurrentToLast(), moveCurrentToNext(), moveCurrentToPosition(index)和moveCurrentToPrevious() 方法更改当前的位置。 当当前位置更改后,我们使用currentChanging和currentChanged来追踪它。 我们可以在currentChanging事件中取消当前的更改。
注意:单击下一个按钮来移动当前记录到下一个。 单击"上一个" 移动当前记录到上一个。 单击"停在第4行"按钮,当前记录到达第四行后禁止更改。 然后单击"清除"按钮移除允许当前记录自由更改。
CollectionView类,就像.NET中那样,实现了ICollectionView接口来支持排序。 要实现排序,添加一个或多个sortDescriptions对象到一个数组中, 并把该数组传递给CollectionView.sortDescriptions属性。现在你就可以从CollectionView.items属性获得排序结果了。
SortDescription对象是灵活的,允许你根据值按升序或降序来排列数据。在下面的样例中, 你可以根据在第一个列表选中选中的字段值来对集合进行排序。你也可以在第二个列表指定排序顺序。
CollectionView类,就像.NET中那样,实现了ICollectionView接口来支持过滤。 要实现过滤,设置CollectionView.filter属性为一个函数,它决定视图中包含哪一个对象。
在这个样例中,我们为country创建了一个过滤器,并且可以从输入控件获取过滤的值。 当你输入一个过滤值时,表格会刷新并且只显示过滤后的数据。
CollectionView类,就像.NET中那样,实现了ICollectionView接口来支持分组。 要实现分组,添加一个或多个GroupDescription 对象到一个数组并且将这个数组传递给CollectionView.groupDescriptions属性。 在创建表格实例时,你必须设置表格的showGroups属性为true(默认值是false)。
GroupDescription对象是灵活的,允许你根据值或分组函数来进行分组。
下面的样例根据你从列表中选择的任意一个字段进行分组。表格不仅展示项的内容也会展示分组信息: 组名,组汇总的平均值,你可以在initTBody方法找到表达的代码,相应的代码片段在116行。
注意:选择列表中的一个项会添加一个新的GroupDescription实例。随后的选择会嵌套组。 如果你选择列表中已经存在GroupDescription对象的项,不会有任何事发生。要清除组的设置,选择列表的第一项。
CollectionView类,实现了IEditableCollectionView接口来支持编辑。
这个样例展示你应该如何更新,添加和删除集合中的项。
在这个表格中,选中一个行然后按下下面编辑详情按钮会开始编辑。 当你在弹出对话框完成编辑后,按下OK按钮来提交你的更新。 如果你想要添加一个新的记录到集合中,按下添加按钮并且在对话框中自定义输入项的内容。 按下OK来提交该新纪录。如果你不想更新/添加记录,按下对话框的取消按钮。 选中一个行然后按下删除按钮来从集合中移除一个记录。
在更新,增加和删除后,表格会根据追踪的项数组来刷新表格。
CollectionView类,与.NET中几乎相同,实现了IPagedCollectionView接口来支持分页。要实现分页, 设置IPagedCollectionView.pageSize 属性为你想要在每个页面展示的项的数量,然后提供一个导航页面的UI。
在这个样例中,CollectionView对象被初始化为每页显示10个项。 你可以在textbox中自定义一个数字。 我们添加了导航按钮,并且在按钮的点击事件中调用IPagedCollectionView方法。 注意我们使用pageIndex和pageCount属性来展示当前页面和页面的总数。你可以在第一个文本框自定义页面的大小。 将它设为空或0会禁用分页并且隐藏导航按钮。
CollectionView类可以追踪对数据的更改。这个功能在一些必须提交更改到服务器的情形是有用的。 要打开更改追踪的功能,把trackChanges属性改为true。 一旦你那样做了,CollectionView会跟踪数据的任何变化并且在三个数组中显示它们:
这个功能在下方通过一个FlexGrid展现。这个表格与CollectionView绑定,并把trackChanges设为真。 当你编辑表格时,这些更改会出现在下方的三个表格中。