第43章、分页显示

 

【知识要点】
  (1)GridView分页

【问题提出】
  对于数据量较大的时候,我们常常进行分页。

【在线指导】

   PagedDataSource类封装了GridView控件的属性,从而使GridView控件可以执行分页,它就是一个数据的容器,我们先把数据从数据库中读取出来放在这个容器中,然后设置容器的属性取出当前要显示的页上的部分数据,然后将此部分数据再绑定到页面上的显示控件(例如GridView、DataList)上。

  我们今天用PagedDataSource类实现GridView控件的数据分页 。

1、设计界面

  (1)打开Hello项目,单击“启动页>最近使用的项目>Hello”。

  (2)在“解决方案资源管理器”中添加“SqlGridView-Page.aspx”页面。

  (3)从工具箱中拖1个GridView到SqlGridView-Page..aspx页面。

   GridView控件ID属性分别为:gvClient

        

  再拖4个HyperLink和1个Label,分别用来显示“首页、上一页、下一页”和“当前页/共几页”信息。4个HyperLink的ID属性分别为:hlFirst、hlPrev、hlNext、hlLast,Label的ID属性为lblPage。

  

2、添加代码 

 (1)双击SqlManage.aspx页面空白处,在Page_Load()输入以下代码。

//初始化当前页和总页数
int CurrPage = 0;
int TotalPage = 0;

//把数据库中Client表的内容放到DataTable
string ClientSql = "SELECT * FROM Client";
DataTable DtClient = DataAccess.GetDataTable(ClientSql);

//分页设置
PagedDataSource pdsPage = new PagedDataSource();
pdsPage.DataSource = DtClient.DefaultView;
pdsPage.AllowPaging = true;
pdsPage.PageSize = 2;

//判断地址是否传递了页码参数
if (Request.QueryString["page"] != null)
  CurrPage = Convert.ToInt16(Request.QueryString["page"]);
else
  CurrPage = 1;

TotalPage = pdsPage.PageCount;
pdsPage.CurrentPageIndex = CurrPage - 1;

//填充gvClient
gvClient.DataSource = pdsPage;
gvClient.DataBind();

//显示分页状态信息
lblPage.Text = "第" + CurrPage.ToString() + "页/共" + Convert.ToString(TotalPage) + "页";

//首页
hlFirst.NavigateUrl = Request.CurrentExecutionFilePath + "?page=1";

//上一页
if (!pdsPage.IsFirstPage)
  hlPre.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString((CurrPage - 1));
//下一页
if (!pdsPage.IsLastPage)
  hlNext.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString((CurrPage + 1));
//尾页
hlLast.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(TotalPage);

 

 

  (2)现在我们从“解决方案资源管理器”中,选择“SqlManage.aspx”,单击右键“在浏览器中查看”。 

 

  讲解:

  PageDataSource是本章的核心。

注: PagedDataSource 类的部分公共属性:
AllowCustomPaging 获取或设置指示是否启用自定义分页的值。
AllowPaging 获取或设置指示是否启用分页的值。
Count 获取要从数据源使用的项数。
CurrentPageIndex 获取或设置当前页的索引。
DataSource 获取或设置数据源。
DataSourceCount 获取数据源中的项数。
FirstIndexInPage 获取页中的第一个索引。
IsCustomPagingEnabled 获取一个值,该值指示是否启用自定义分页。
IsFirstPage 获取一个值,该值指示当前页是否是首页。
IsLastPage 获取一个值,该值指示当前页是否是最后一页。
IsPagingEnabled 获取一个值,该值指示是否启用分页。
IsReadOnly 获取一个值,该值指示数据源是否是只读的。
IsSynchronized 获取一个值,该值指示是否同步对数据源的访问(线程安全)。
PageCount 获取显示数据源中的所有项所需要的总页数。
PageSize 获取或设置要在单页上显示的项数。
VirtualCount 获取或设置在使用自定义分页时数据源中的实际项数。

 

你可能感兴趣的:(第43章、分页显示)