AspNetPager 分页显示

        在视频播放系统中视频介绍页有一个对视频评论的页面,在这个页面访问网站的用户可以添加评论和查看评

论,添加评论是没问题的,但是查看评论稍微有点难度,在牛腩视频中的分页是假分页,他是把所有的评论都加载到

页面中,这样就给页面带来了很大的压力,并且查询上也是很大的工作量,所以我们就考虑使用真分页。


        真分页是把所需要的页面的评论显示出来,而不是加载所有的评论,这样我们的页面压力和美观上都有了很大的

改善用户可以任意选择自己需要看的那一页,并且数据查询方面也是非常的简单。

       真分页显示需要的控件是AspNetPager,这个控件是一个山西人写的,非常的好用。

添加控件将aspNetPager添加到工具栏,然后添加到页面。添加到页面之后需要设置AspNetPager的属性,当然默认

下的也可以正常显示,只是那是最简单的,如果你想要更多的效果,可以设置属性,如:上一页、下一页、首页、显

示搜索框………………,这样就会让你的页面丰富很多,也很方便,如果数据量大的话,可以加入搜索框。

        然后就是页面的代码:
        1.页面加载时需要载入评论,默认显示是第一页,每页的显示条数自己定,一般是10到20条,淡然首先要给aspNetPage.RecordCount=dt.rows.count(评论总数)

        2.之后就是加载数据,

  1. <span style="font-size:18px;">/// <summary>  
  2.     ///在分页中加载数据   
  3.     /// </summary>  
  4.     /// <param name="CourseId"></param>  
  5.     /// <param name="pageSize"></param>  
  6.     /// <param name="PageNum"></param>  
  7.     protected  void   LoadData(int CourseId, int pageSize, int PageNum)   
  8.     {  
  9.         DataTable dt = new DataTable();  
  10.         VideoCommentManager objVideoCommentManager = new VideoCommentManager();  
  11.         aspPagerComment.PageSize = 10;    //设置每页显示数目  
  12.         aspPagerComment.RecordCount = objVideoCommentManager.GetCount( int.Parse(HFCourseId.Value));             //获得评论总数  
  13.         if (aspPagerComment.RecordCount < 10)  
  14.         {  
  15.             aspPagerComment.Visible = false;  
  16.         }  
  17.         else  
  18.         {  
  19.             aspPagerComment.Visible = true;  
  20.         }  
  21.         dt = objVideoCommentManager.GetCommentsByVideoCourseID(int.Parse(HFCourseId.Value), pageSize, PageNum);  
  22.          
  23.         RepeaterComment.DataSource = dt;  //将数据绑定repeater控件  
  24.         RepeaterComment.DataBind();  
  25.           
  26.     }  
  27. </span><pre name="code" class="html"><span style="font-size:18px;">3.选择需要的页面时  
  28.      /// <summary>  
  29.     /// 评论换页  
  30.     /// </summary>  
  31.     /// <param name="sender"></param>  
  32.     /// <param name="e"></param>  
  33.     protected void aspPagerComment_PageChanged(object sender, EventArgs e)  
  34.     {  
  35.         LoadData(int.Parse(HFCourseId.Value), aspPagerComment.PageSize, aspPagerComment.CurrentPageIndex);  
  36.     }</span>  


数据库的sql语句是根据页码和每页显示数,来查询特定页的数据
  1. <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"  
  2.         
  3.        这样我们的真分页就完成了,当然我们如果想让分页控件显示的好看些我们可以,在css中设置控件的格式,让我们的页面的更加美观。  
  4.    
  5.            但是需要注意的是:如果我们的控件不显示下面三点要注意:  
  6. </span>  

1、要分页的记录总数只要一页且AlwaysShow设为false(默认),当然如果只有一页的时候,设置为false,就不会显示。
2、Visible属性设为false;
3.未设置RecordCount的值
  1. </pre></blockquote><pre>  
posted @ 2011-12-29 11:25  Alina_Kung  阅读(491)  评论(0编辑  收藏  举报