关于datapage的一点疑问解决方案
关于datapage的一点疑问DataPager实现分页需要传入一个PagedCollectionView才行,一般分面控件只要传入总记
关于datapage的一点疑问
DataPager实现分页需要传入一个PagedCollectionView才行,一般分面控件只要传入总记录数和分页大小就可以了,所以,我们一般给Datapager增加一个扩展方法来绑定总记录数和分页大小
C# codepublic static class DataPageExtension { public static void BindSource(this DataPager dataPager, int totalCount, int pageSize) { List<int> list = new List<int>(totalCount); for (int i = 0; i < totalCount; i++) list.Add(i); PagedCollectionView pcv = new PagedCollectionView(list);//这里为什么要传入一个LIST的呢,而不是像 //pcv.PageSize = pageSize一样,直接将记录总数赋值给PagedCollectionView呢? //new PagedCollectionView(这里面传的参数类型是System.Collections.IEnumberable);为什么要用枚举呢? //搞不明白DataPager分页机制是怎样的呢? pcv.PageSize = pageSize; dataPager.Source = pcv; } }
小弟对这段代码有些疑问,请各位大哥指点迷津,谢谢!~~
[解决办法]我的理解:
Datapager 是将整个要分页的集合加载到Datapager对象当中取,Datapager的操作对象不是DataGrid分页后的子集,而是整个集合.
[解决办法]这个只是设计了个DataGrider的分页数据项,和实际的不一致的!实际的数据不可能只是个 Int 来做数据显示的。实际的数据也许只有一页。
[解决办法]1.这里为什么要传入一个LIST的呢,而不是像pcv.PageSize = pageSize一样,直接将记录总数赋值给PagedCollectionView呢?
2.new PagedCollectionView(这里面传的参数类型是System.Collections.IEnumberable);为什么要用枚举呢?
3.搞不明白DataPager分页机制是怎样的呢?
答:PagedCollectionView 可为实现 IEnumerable 接口的任何集合提供分组、排序、筛选和分页功能。DataPager 控件提供一个方便的用户界面,用于使用 PagedCollectionView 控制分页。
Silverlight中首先使用PagedCollectionView获取数据实体集。设置每页显示数据,把PagedCollectionView绑定到DataPager和DataGrid。在这里DataGrid的Source不能直接绑定数据实体集,而需要这个视图进行转换才行。