想必知道大家都会用web网页的分页控件,但silverlight分页控件的PageCount是不支持赋值的(了解知识有限,至少我不会),那怎么办呢
我们知道DataPager分页是可以设置PageSize和Source,然后控件会自动显示最大页数,也就是PageCount,那么我们就可以以Source为出发点,因为Source是要绑定集合的,那么我们构建一个数据集,然后绑定,只要数据条数和数据源的条数相同就行,内容没有实际的意义
代码:
List<int> itemCount = new List<int>(); //这里创建一个集合来存储数据,内容可以为任何东西,只要条数相同就行
WcfServices.WcfServicesClient sc = new WcfServices.WcfServicesClient();
//查询数据库获得数据的总条数
sc.GetPageCountCompleted += (object sender, GetPageCountCompletedEventArgs e) =>
{
if (e.Error == null)
{
//循环构建数据集
for (int i = 0; i < e.Result; i++)
{
itemCount.Add(i);
}
//创建分页数据视图
System.Windows.Data.PagedCollectionView pcv = new System.Windows.Data.PagedCollectionView(itemCount);
//DataPager绑定数据源
dataPg.Source = pcv; //此处会自动触发dataPg_PageIndexChanged事件
}
};
sc.GetPageCountAsync();
这样DataPager就能自动设置好PageCount了,剩下的也就没什么的,和web网页的分页控件一样,当页数改变时,在PageIndexChanged里面Coding.
如果还有不会的可以留言