在处理大量数据时,经常需要将数据分页显示,以提高用户体验和性能。本文将介绍如何在DataGrid控件中集成分页功能,以便能够逐页显示记录。通过阅读本文,将能够了解如何通过简单的技巧自动实现DataGrid的分页。
假设已经阅读了前两篇文章:“在SilverlightDataGrid中使用PagedCollectionView进行记录分组”和“在Silverlight DataGrid中使用PagedCollectionView进行记录过滤”。这两篇文章介绍了PagedCollectionView,它被用来在ViewModel中存储记录。在本文中,将讨论如何将DataPager集成到DataGrid中,以实现分页功能。
打开之前添加DataGrid的XAML页面,并在DataGrid下方添加以下代码:
<DataPager DisplayMode="FirstLastPreviousNextNumeric" PageSize="3" Source="{Binding Employees}">
<DataPager.NumericButtonCount>3</DataPager.NumericButtonCount>
</DataPager>
在这里,需要设置分页器的DisplayMode。总共有6种DisplayMode,分别是“FirstLastPreviousNextNumeric”,“FirstLastNumeric”,“FirstLastPreviousNext”,“Numeric”,“PreviousNext”和“PreviousNextNumeric”。可以从中选择一个。
如前所述,DataPager有6种显示模式。以下是每种显示模式的详细说明:
设置PageSize="3"将为每页设置最大记录数。如果浏览每一页,将看到所有页面都有相同数量的记录(在例子中是3)。最后一页可能少于或等于PageSize的数量。
不必担心分组和/或过滤中的分页逻辑。让对记录进行分组。从下拉菜单中选择任何分组选项。将看到,在这里,记录也根据PageSize进行分组。浏览其他页面,将看到每页有相同数量的记录。
<UserControl xmlns="..." ...>
...
<DataPager DisplayMode="FirstLastPreviousNextNumeric" PageSize="3" Source="{Binding Employees}">
<DataPager.NumericButtonCount>3</DataPager.NumericButtonCount>
</DataPager>
</UserControl>