AspNetPager 分页显示
在视频播放系统中视频介绍页有一个对视频评论的页面,在这个页面访问网站的用户可以添加评论和查看评
论,添加评论是没问题的,但是查看评论稍微有点难度,在牛腩视频中的分页是假分页,他是把所有的评论都加载到
页面中,这样就给页面带来了很大的压力,并且查询上也是很大的工作量,所以我们就考虑使用真分页。
真分页是把所需要的页面的评论显示出来,而不是加载所有的评论,这样我们的页面压力和美观上都有了很大的
改善用户可以任意选择自己需要看的那一页,并且数据查询方面也是非常的简单。
真分页显示需要的控件是AspNetPager,这个控件是一个山西人写的,非常的好用。
添加控件将aspNetPager添加到工具栏,然后添加到页面。添加到页面之后需要设置AspNetPager的属性,当然默认
下的也可以正常显示,只是那是最简单的,如果你想要更多的效果,可以设置属性,如:上一页、下一页、首页、显
示搜索框………………,这样就会让你的页面丰富很多,也很方便,如果数据量大的话,可以加入搜索框。
然后就是页面的代码:
1.页面加载时需要载入评论,默认显示是第一页,每页的显示条数自己定,一般是10到20条,淡然首先要给aspNetPage.RecordCount=dt.rows.count(评论总数)
2.之后就是加载数据,
- <span style="font-size:18px;">/// <summary>
- ///在分页中加载数据
- /// </summary>
- /// <param name="CourseId"></param>
- /// <param name="pageSize"></param>
- /// <param name="PageNum"></param>
- protected void LoadData(int CourseId, int pageSize, int PageNum)
- {
- DataTable dt = new DataTable();
- VideoCommentManager objVideoCommentManager = new VideoCommentManager();
- aspPagerComment.PageSize = 10; //设置每页显示数目
- aspPagerComment.RecordCount = objVideoCommentManager.GetCount( int.Parse(HFCourseId.Value)); //获得评论总数
- if (aspPagerComment.RecordCount < 10)
- {
- aspPagerComment.Visible = false;
- }
- else
- {
- aspPagerComment.Visible = true;
- }
- dt = objVideoCommentManager.GetCommentsByVideoCourseID(int.Parse(HFCourseId.Value), pageSize, PageNum);
- RepeaterComment.DataSource = dt; //将数据绑定repeater控件
- RepeaterComment.DataBind();
- }
- </span><pre name="code" class="html"><span style="font-size:18px;">3.选择需要的页面时
- /// <summary>
- /// 评论换页
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- protected void aspPagerComment_PageChanged(object sender, EventArgs e)
- {
- LoadData(int.Parse(HFCourseId.Value), aspPagerComment.PageSize, aspPagerComment.CurrentPageIndex);
- }</span>
数据库的sql语句是根据页码和每页显示数,来查询特定页的数据
- <span style="font-size:18px;"> sql="with temptb as(select ROW_NUMBER() over(order by conmmentTIme desc)as rowNum, * from VideoComment where [videoCourseId]=@videoCourseId)select * from temptb where rowNum between @startIndex and @endIndex"
- 这样我们的真分页就完成了,当然我们如果想让分页控件显示的好看些我们可以,在css中设置控件的格式,让我们的页面的更加美观。
- 但是需要注意的是:如果我们的控件不显示下面三点要注意:
- </span>
1、要分页的记录总数只要一页且AlwaysShow设为false(默认),当然如果只有一页的时候,设置为false,就不会显示。
2、Visible属性设为false;
3.未设置RecordCount的值
- </pre></blockquote><pre>