• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 在ASP.NET 2.0中操作数据之二十四:分页和排序报表数据

在ASP.NET 2.0中操作数据之二十四:分页和排序报表数据

作者:heker2007 字体:[增加 减小] 来源:互联网 时间:2017-05-11

heker2007通过本文主要向大家介绍了水晶报表 asp.net,asp.net,asp net培训,asp和asp.net的区别,零基础学asp.net等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

导言

  分页和排序是在WEB应用程序中展现数据常见的功能。比如,当我们在一个网上书店搜索ASP.NET书籍的时候,可能有几百本相关书籍,但是我们只希望每页显示10条有效记录。而且,我们还希望结果能根据标题、价格、页数和作者等等来进行排序。过去的23个教程中我们研究了如何建立各种报表,包括在界面上添加编辑和删除数据。但是我们没有研究如何对数据进行排序,对于分页我们也仅在研究DetailsView和FormView控件的时候看到。

Step 1:添加分页和排序页面

  在我们开始以前,首先让我们花些时间来添加包括本篇在内的最近四篇教程需要用到的页面。我们先在项目中新建一个称作PagingAndSorting的文件夹,接下来,为目录新增以下几个页面,并配置为使用Site.master母板页。

  Default.aspx
  SimplePagingSorting.aspx
  EfficientPaging.aspx
  SortParameter.aspx
  CustomSortingUI.aspx

http://files.weikejianghu.com/file_images/article/201605/20160507155451140.png

图1:创建一个PagingAndSorting文件夹并且添加教程的页面

  下一步,让我们打开Default.aspx页面并且从UserControls中拖拽SectionLevelTutorialListing.ascx用户控件到设计界面。我们在母板页和站点导航教程中创建的这个用户控件遍历站点地图并且以符号列表形式把它们呈现出来。

http://files.weikejianghu.com/file_images/article/201605/20160507155455141.png

图2:把SectionLevelTutorialListing.ascx用户控件加入Default.aspx

  要让显示我们将要创建的分页和排序教程,我们需要把他们加入站点地图中。打开Web.sitemap文件并且把下列代码加在“编辑、插入和删除”siteMapNode标记之后:

<siteMapNode title="Paging and Sorting" url="~/PagingAndSorting/Default.aspx"
  description="Samples of Reports that Provide Paging and Sorting Capabilities">
  <siteMapNode url="~/PagingAndSorting/SimplePagingSorting.aspx"
    title="Simple Paging & Sorting Examples"
    description="Examines how to add simple paging and sorting support." />
  <siteMapNode url="~/PagingAndSorting/EfficientPaging.aspx"
    title="Efficiently Paging Through Large Result Sets"
    description="Learn how to efficiently page through large result sets." />
  <siteMapNode url="~/PagingAndSorting/SortParameter.aspx"
    title="Sorting Data at the BLL or DAL"
    description="Illustrates how to perform sorting logic in the Business Logic
    Layer or Data Access Layer." />
  <siteMapNode url="~/PagingAndSorting/CustomSortingUI.aspx"
    title="Customizing the Sorting User Interface"
    description="Learn how to customize and improve the sorting user interface." />
</siteMapNode>

</div>

http://files.weikejianghu.com/file_images/article/201605/20160507155455142.png

图3:更新站点地图使之包含新的页面

Step 2:在GridView中显示产品信息

  在我们真正实现分页和排序功能以前,让我们首先创建一个标准的,没有排序和分页功能的GridView来显示产品信息。其实这个工作我们已经做过很多次了,大家也应该很熟悉了。首先打开SimplePagingSorting.aspx页面并且从工具箱中拖一个GridView控件到设计器,配置它的ID属性为Products。接着,新建一个ObjectDataSource并使用ProductsBLL类的GetProducts()方法来获取所有的产品信息。

http://files.weikejianghu.com/file_images/article/201605/20160507155455143.png

图4:使用GetProducts()方法获取所有产品信息

  因为这个报表是只读的,我们不需要把ObjectDataSource的Insert(), Update(), 和 Delete()方法映射到相应的ProductsBLL方法,因此,对于UPDATE, INSERT, 和 DELETE页我们从下拉列表中选取(None)。

http://files.weikejianghu.com/file_images/article/201605/20160507155455144.png

图5:对于UPDATE, INSERT, 和DELETE页,我们从下拉列表中选择(None)选项

  下一步,让我们调整GridView的字段使之只显示产品名、供应商、分类、价格和状态。另外,我们可以尽管进行一些格式上的调整,比如配置价格的HeaderText以符合我们的货币形式。经过这些修改之后,我们的GridView代码应该和下面的差不多:

<asp:GridView ID="Products" runat="server" AutoGenerateColumns="False"
  DataKeyNames="ProductID" DataSourceID="ObjectDataSource1"
  EnableViewState="False">
  <Columns>
    <asp:BoundField DataField="ProductName" HeaderText="Product"
      SortExpression="ProductName" />
    <asp:BoundField DataField="CategoryName" HeaderText="Category"
      ReadOnly="True" SortExpression="CategoryName" />
    <asp:BoundField DataField="SupplierName" HeaderText="Supplier"
      ReadOnly="True" SortExpression="SupplierName" />
    <asp:BoundField DataField="UnitPrice" HeaderText="Price"
      SortExpression="UnitPrice" DataFormatString="{0:C}"
      HtmlEncode="False" />
    <asp:CheckBoxField DataField="Discontinued" HeaderText="Discontinued"
      SortExpression="Discontinued" />
  </Columns>
</asp:GridView>

</div>

  图6显示了在浏览器中的效果,但是注意到,我们在一个屏幕上显示产品。显示了每个产品的名字、分类、供应商、价格和状态。

http://files.weikejianghu.com/file_images/article/201605/20160507155456145.png

图6:每个产品都列出来了

Step 3:添加分页支持

  在一个屏幕上列出所有的产品对于用户查看数据非常不方便。要让结果更加可以管理,我们应该把数据分几个页面来呈现,并提供用户切换页面的功能。要实现这个只需要选择GridView智能标签前的Paging复选框即可(其实就是把AllowPaging属性设置为true)。

http://files.weikejianghu.com/file_images/article/201605/20160507155456146.png

图7:点击Enable Paging复选框来支持分页

  开启分页以后就能限制每页显示的记录数量并且在GridView中增加了分页导航。默认如图7,是一系列页面的数字,运行用户快速从一个页面切换到另一个。其实我们并不陌生,在为过去的教程中我们已经为DetailsView个FormView控件提供过分页支持。

  DetailsView和FormView控件仅仅支持每一页显示一条记录。但是对于GridView,有一个PageSize 属性,能让我们配置每页显示的记录数(默认是设置为10)。

  GridView, DetailsView 和 FormView分页导航能使用下面的属性来配置:

  PagerStyle –指示分页导航的样式,能设置BackColor, ForeColor, CssClass, HorizontalAlign等等。
  PagerSettings –包含大量属性来自定义分页导航的功能;PageButtonCount代表显示在底部分页导航的最大页面数(默认为10);Mode 属性 代表分页操作的形式,能设置为:
  NextPrevious –显示下一页和上一页按钮,让用户一次朝后或者朝前翻一页
  NextPreviousFirstLast –除了下一页和上一页按钮外,还提供第一页和最后一页按钮,能让用户快速定位到首页或者末页数据
  Numeric –显示一系列页面数字,让用户直接点击数字切换到相应页面
  NumericFirstLast –除了页面数字以外还提供第一页和最后一页按钮,让用户能快速定位到首页或者末页数据,只有当没有显示首页或者末页数字时才显示按钮

  此外,GridView, DetailsView和 FormView还提供了PageIndex 和 PageCount属性来指示当前呈现的页面和页面总数。PageIndex属性从0开始编号,因此我们浏览第一页的时候就为0,而PageCount是从1开始编号的,因此PageIndex的范围在0和PageCount – 1之间。

  让我们再花一些时间来改进GridView分页导航的默认外观。首先,我们把分页导航居右并且设置为灰色背景色。我们不希望直接设置GridView的PagerStyle属性来实现,而是在Styles.css中创建一个称作PagerRowStyle 的CSS类,然后设置主题文件中

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 在ASP.NET 2.0中操作数据之二十四:分页和排序报表数据
  • asp.net水晶报表参数字段在代码中赋值的方法
  • 水晶报表asp.net的webform下基本用法实例
  • ASP.NET中水晶报表的使用方法详解
  • Asp.net 自带报表的使用详解
  • asp.net 动态生成rdlc报表(原创)
  • asp.net 水晶报表隔行换色实现方法
  • .NET 水晶报表使用代码
  • ASP.NET 水晶报表打印功能实现代码
  • ASP.NET中动态控制RDLC报表

相关文章

  • 2017-05-11asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法
  • 2018-08-20如何为asp.net core添加protobuf支持详解
  • 2017-05-11asp.net 常用字符串处理方法
  • 2017-05-11asp.net Forms身份验证和基于角色的权限访问
  • 2017-05-11implicitly convert type 'int' to 'short'的原因与解决方法
  • 2017-05-11最详细的ASP.NET微信JS-SDK支付代码
  • 2017-05-11《解剖PetShop》之六:PetShop之表示层设计
  • 2017-05-11运行asp.net时出现 http错误404-文件或目录未找到
  • 2017-05-11ashx中使用session的方法(获取session值)
  • 2017-05-11.net jquery绘制自定义表单源码分享

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#中的Equals、RefrenceEquals和==的区别与联系
    • Sqlite 常用函数封装提高Codeeer的效率
    • .Net中实现无限分类的2个例子
    • 在ASP.net中保存/取出图片入/从SQL数据库
    • asp.net TIDFtp用法介绍
    • 在ASP.NET中用存储过程执行SQL语句
    • 使用FreeHost SQL2000网页管理器出错解决办法
    • HTTP错误500.19解决方法(定义了重复的节点)
    • ASP.NET Mvc开发之删除修改数据
    • 一个简单的asp.net 单点登录实现

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有