博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AspNetPager真假分页对照实例
阅读量:5086 次
发布时间:2019-06-13

本文共 4925 字,大约阅读时间需要 16 分钟。

    从開始学习BS已经有一段时间了。

对于BS的设计,都是进行的网页设计,当中包含从数据库中取出来的数据。显示在页面上。曾经在CS中,都是使用GridView等表格控件进行显示,因为数据小。并且右側又有滚轮。

所以从来都没有考虑过给数据进行分页。所以这是一大失误。

如今反应过来也不算晚。接下来,让我们接触一下分页。

 

不进行分页的弊端:

于大数据的查询操作。

   1、数据量太大,窗口加载时间太慢

   2、显示的数据量太大,用户看起来不舒服。

 

分页的两种方式:

 

假分页:

在运行查询的时候,就把全部的数据都查询出来,之后再跳转页面的时候就不须要进行查询了。

 

真分页:

在运行查询操作的时候,仅仅查询所显示当前页面的内容进行显示。之后的跳转页面也须要查询数据库取相应数据。

 

在数据量大的情况下对照:

 

   在小数据的情况下,由于如今的电脑处理速度都够快,採用真分页和假分页用户体验度没有区别。

   关于怎样加入AspNetPager控件,借阅下面文章:

    

 

真假分页实例结果图:

 

   使用自带的GridView表格来显示数据。利用AspNetPager控件  进行分页。

   怎样使用AspNetPager请翻阅---。

我就不赘述了。

 

html主界面:

先设置一个分页控件在首部,之后再复制上面的控件放究竟部,使其达到同步的效果。

数据库连接类:

/************************************************* *作者:赵崇*小组:*说明:*创建日期:2014/8/3 14:34:46*版本:V1.0.0**************************************************/using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data;using System.Data.SqlClient;namespace news{    public class DB    {        public static SqlConnection createCon()        {            return new SqlConnection("server=.;database=AspNetPagerTest;uid=sa;pwd=123456");        }        public static int count()        {            SqlConnection con = createCon();            con.Open();            SqlCommand cmd = new SqlCommand("select count(*) from anp",con);            return (int)cmd.ExecuteScalar();        }        public static SqlDataReader GetSource(int start,int end)        {            SqlConnection con = createCon();            con.Open();            SqlCommand cmd= new SqlCommand("select * from anp where id between "+start+" and "+end, con);            SqlDataReader sdr= cmd.ExecuteReader();            return sdr;        }        public static DataTable GetSource()        {            SqlConnection con = createCon();            con.Open();            SqlCommand cmd = new SqlCommand("select * from anp", con);            SqlDataReader sdr = cmd.ExecuteReader();            DataTable dt=new DataTable();            dt.Load(sdr);                        return dt;        }    }}

 

 

 

为了对照一下真假分页。首先看假分页的实现:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Data.SqlClient;namespace news{    public partial class JiaFenYe : System.Web.UI.Page    {        DataView dv = new DataView(DB.GetSource());        protected void Page_Load(object sender, EventArgs e)        {            //anpTop.RecordCount = DB.count();            //把数据的记录总数 保存到分页控件中            //GridView1.DataSource = DB.GetSource(1, 5);   //默认选择5条记录            //GridView1.DataBind();            anpTop.RecordCount = DB.count();            //把数据的记录总数 保存到分页控件中            dv.RowFilter = "id<=5";             //默认第一页显示5条记录            GridView1.DataSource = dv;            GridView1.DataBind();           //绑定视图        }        protected void anp_PageChanged(object sender, EventArgs e)        {            //Response.Write("開始页码:" + anpTop.StartRecordIndex + "
结束页码:" + anpTop.EndRecordIndex); int startIndex = anpTop.StartRecordIndex; //事实上记录号 int endIndex = anpTop.EndRecordIndex; //终止记录号 //DataView dv = new DataView(DB.GetSource()); dv.RowFilter = "id >=" + startIndex + " and id<= " + endIndex; //查询指定区间内的记录 GridView1.DataSource = dv; GridView1.DataBind(); //绑定视图 } }}

 

在来对照一下。真分页的实现:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace news{    public partial class WebForm1 : System.Web.UI.Page    {        protected void anp_PageChanged(object sender, EventArgs e)        {            //Response.Write("開始页码:" + anpTop.StartRecordIndex + "
结束页码:" + anpTop.EndRecordIndex); int startIndex = anpTop.StartRecordIndex; //数据的起始记录数 int endIndex = anpTop.EndRecordIndex; //数据的截止记录数 GridView1.DataSource = DB.GetSource(startIndex,endIndex); //显示当前区间内的数据 GridView1.DataBind(); } protected void Page_Load(object sender, EventArgs e) { anpTop.RecordCount = DB.count(); //把数据的记录总数 保存到分页控件中 GridView1.DataSource = DB.GetSource(1,5); //默认选择5条记录 GridView1.DataBind(); } }}

 

   通过对照以上实验结果,由于測试的数据太少  效果不明显。

只是通过代码实现过程,能够看出,在大数据的前提下,假分页加载是一个非常大的问题。

当然 两种分页方式 各有特色。能够依据实际需求来选择。

    假设有须要看源代码的,请自行下载:

   

 

转载于:https://www.cnblogs.com/yfceshi/p/6883303.html

你可能感兴趣的文章
【传道】中国首部淘宝卖家演讲公开课:农业本该如此
查看>>
jQuery应用 代码片段
查看>>
MVC+Servlet+mysql+jsp读取数据库信息
查看>>
黑马程序员——2 注释
查看>>
用OGRE1.74搭建游戏框架(三)--加入人物控制和场景
查看>>
转化课-计算机基础及上网过程
查看>>
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
互联网模式下我们更加应该“专注”
查看>>
myeclipse集成jdk、tomcat8、maven、svn
查看>>
查询消除重复行
查看>>
Win 10 文件浏览器无法打开
查看>>
HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)
查看>>
-bash: xx: command not found 在有yum源情况下处理
查看>>
[leetcode]Minimum Path Sum
查看>>
内存管理 浅析 内存管理/内存优化技巧
查看>>
hiho1079 线段树区间改动离散化
查看>>
【BZOJ 5222】[Lydsy2017省队十连测]怪题
查看>>
第二次作业
查看>>
【input】 失去焦点时 显示默认值 focus blur ★★★★★
查看>>