1、图1:创建一个PagingAndSorting文件夹并且添加教程的页面下一步,让我们打开Default.aspx页面并且从UserControls中拖拽SectionLevelTutorialListing.ascx用户控件到设计界面。我们在母板页和站点导航教程中创建的这个用户控件遍历站点地图并且以符号列表形式把它们呈现出来。 图2:把SectionLevelTutorialListing.ascx用户控件加入Default.aspx要让显示我们将要创建的分页和排序教程,我们需要把他们加入站点地图中。打开Web.sitemap文件并且把下列代码加在“编辑、插入和删除”siteMapNode标记
2、之后: /PagingAndSorting/EfficientPaging.aspxEfficiently Paging Through Large Result SetsLearn how to efficiently page through large result sets./PagingAndSorting/SortParameter.aspxtitle=Sorting Data at the BLL or DALIllustrates how to perform sorting logic in the Business LogicLayer or Data Access Lay
3、er./PagingAndSorting/CustomSortingUI.aspxCustomizing the Sorting User InterfaceLearn how to customize and improve the sorting user interface./siteMapNode图3:更新站点地图使之包含新的页面Step 2:在GridView中显示产品信息在我们真正实现分页和排序功能以前,让我们首先创建一个标准的,没有排序和分页功能的GridView来显示产品信息。其实这个工作我们已经做过很多次了,大家也应该很熟悉了。首先打开SimplePagingSorting.
4、aspx页面并且从工具箱中拖一个GridView控件到设计器,配置它的ID属性为Products。接着,新建一个ObjectDataSource并使用ProductsBLL类的GetProducts()方法来获取所有的产品信息。 图4:使用GetProducts()方法获取所有产品信息因为这个报表是只读的,我们不需要把ObjectDataSource的Insert(), Update(), 和 Delete()方法映射到相应的ProductsBLL方法,因此,对于UPDATE, INSERT, 和 DELETE页我们从下拉列表中选取(None)。 图5:对于UPDATE, INSERT, 和D
5、ELETE页,我们从下拉列表中选择(None)选项下一步,让我们调整GridView的字段使之只显示产品名、供应商、分类、价格和状态。另外,我们可以尽管进行一些格式上的调整,比如配置价格的HeaderText以符合我们的货币形式。经过这些修改之后,我们的GridView代码应该和下面的差不多:ASP.NET12345678910111213asp:GridView ID=Products runat=server AutoGenerateColumns=False DataKeyNames=ProductID DataSourceID=ObjectDataSource1 EnableViewS
6、tate=Columns BoundField DataField=ProductName HeaderText=Product SortExpression=CategoryNameCategory ReadOnly=TrueSupplierNameSupplierUnitPricePrice DataFormatString=0:C HtmlEncode=CheckBoxField DataField=Discontinued/Columns/asp:GridView图6显示了在浏览器中的效果,但是注意到,我们在一个屏幕上显示产品。显示了每个产品的名字、分类、供应商、价格和状态。图6:每个
7、产品都列出来了Step 3:添加分页支持在一个屏幕上列出所有的产品对于用户查看数据非常不方便。要让结果更加可以管理,我们应该把数据分几个页面来呈现,并提供用户切换页面的功能。要实现这个只需要选择GridView智能标签前的Paging复选框即可(其实就是把AllowPaging属性设置为true)。图7:点击Enable Paging复选框来支持分页开启分页以后就能限制每页显示的记录数量并且在GridView中增加了分页导航。默认如图7,是一系列页面的数字,运行用户快速从一个页面切换到另一个。其实我们并不陌生,在为过去的教程中我们已经为DetailsView个FormView控件提供过分页支持
8、。DetailsView和FormView控件仅仅支持每一页显示一条记录。但是对于GridView,有一个PageSize 属性,能让我们配置每页显示的记录数(默认是设置为10)。GridView, DetailsView 和 FormView分页导航能使用下面的属性来配置: PagerStyle 指示分页导航的样式,能设置BackColor, ForeColor, CssClass, HorizontalAlign等等。 PagerSettings 包含大量属性来自定义分页导航的功能;PageButtonCount代表显示在底部分页导航的最大页面数(默认为10);Mode 属性 代表分页操作
9、的形式,能设置为:o NextPrevious 显示下一页和上一页按钮,让用户一次朝后或者朝前翻一页 o NextPreviousFirstLast 除了下一页和上一页按钮外,还提供第一页和最后一页按钮,能让用户快速定位到首页或者末页数据 o Numeric 显示一系列页面数字,让用户直接点击数字切换到相应页面 o NumericFirstLast 除了页面数字以外还提供第一页和最后一页按钮,让用户能快速定位到首页或者末页数据,只有当没有显示首页或者末页数字时才显示按钮 此外,GridView, DetailsView和 FormView还提供了PageIndex 和 PageCount属性来
10、指示当前呈现的页面和页面总数。PageIndex属性从0开始编号,因此我们浏览第一页的时候就为0,而PageCount是从1开始编号的,因此PageIndex的范围在0和PageCount 1之间。让我们再花一些时间来改进GridView分页导航的默认外观。首先,我们把分页导航居右并且设置为灰色背景色。我们不希望直接设置GridView的PagerStyle属性来实现,而是在Styles.css中创建一个称作PagerRowStyle 的CSS类,然后设置主题文件中PagerStyle的CssClass属性进行关联。首先打开Styles.css然后把下面CSS类定义加入文件:CSS.Pager
11、RowStyle background-color: #ddd; text-align: right;接着,打开App_Themes 文件夹中DataWebControls 文件夹下的GridView.skin文件。我们在母板页和站点导航教程中提到过,Skin文件能为WEB控件指定一个默认的属性值。因此,我们设置PagerStyle的CssClass属性为PagerRowStyle。同样,让我们配置分页导航来显示5个页面数字(NumericFirstLast模式)。GridView runat= CssClass=DataWebControlStyleAlternatingRowStyle CssC
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1