牛腩视频63集设计到分页技术,跟着你牛楠老师的视频,感觉此项技术挺简单的,然后自己就实现了一下。下面就分页技术进行一下总结。
1、分页:分页是指将数据库中的数据分成若干个页面,独立显示出来。
2、假分页:只从数据库中选择当前页的记录
我们可以用GridView控件来实现分页技术,它的实现是一种假分页,通过下面的代码来具体体现一下假分页技术:
界面:
向页面添加一个GridView控件;
设置其主要属性: AllowPaging=True
PageSize=2
它的事件:PageIndexChanging
主要代码实现:
protected void Page_Load(object sender, EventArgs e)
{
if(!Page .IsPostBack)
{
BindNews();
}
}
//索引值发生改变。
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
BindNews();
}
//抽取的方法
private void BindNews()
{
GridView1.DataSource = new NewsManager().SelectAll();
GridView1.DataBind();
GridView1.HeaderRow.Cells[0].Text = "序号";
GridView1.HeaderRow.Cells[1].Text = "标题";
GridView1.HeaderRow.Cells[2].Text = "内容";
GridView1.HeaderRow.Cells[3].Text = "创建时间";
GridView1.HeaderRow.Cells[4].Text = "类别ID";
}
效果图:
小结:从中我们不难看出,当我们点击一次页码时,程序都会调用SelectAll()方法,向数据库中查询所有的新闻,但是显示的只是当页面的内容。如果数据量大的话,这种方法拖慢程序的执行效率是必然的。
3、真分页:从数据库中选择所有的记录后再进行分页
这里需要引用外部控件Asp.NetPager控件,用它来实习那分页功能。我们借助DataGrid控件来显示我们分页的数据。
需要设置Asp.NetPager的属性
PageSize属性,在此是2.
StartRecordIndex:所选页的开始记录索引值。
EndRecordIndex:所选页的结尾记录索引值。
事件:PageChanged
主要代码实现:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
anp.RecordCount = 10;
}
}
protected void anp_PageChanged(object sender, EventArgs e)
{
//Response.Write("开始记录数:" + anp.StartRecordIndex + "<br>结束记录数:" + anp.EndRecordIndex);
BindNews();
}
//抽取的方法
private void BindNews()
{
int startRecordIndex = anp.StartRecordIndex; //
int endRecordIndex = anp.EndRecordIndex;
GridView1.DataSource = new NewsManager().PageChanged(startRecordIndex,endRecordIndex);
GridView1.DataBind();
}
}
效果图:
小结:当我们单击页码时,会打当前页的:起始记录索引值(StartRecordIndex)和 结束索引值(EndRecordIndex)去数据库中查询数据,去数据库查询的数据只是当前的记录页的数据,然后显示当前页的数据。很明显,此时的程序并没有做一些无用的工作,只查询它所有的数据。
4、总结:
1)分页技术解决了,内容太多,不利于用户使用和阅读的问题。
2)真假分页:
相同点:都能实现分页功能,方便用户的使用;
不同点:
假分页:顾名思义,只实现了表面的分页,实质上并没有实现数据的分离。
真分页:不仅表面上实现了数据的分离,查询的时候也实现了数据的分离。
3)分页技术的作用:分页技术就如同我们的书本,它中所有的内容分成不同的页。可想一下:如果课本没有分页,一页承载一本书的所有内容,那将是一种怎样的情景!