| ASP.NET2.0利用PagedDataSource类实现DataList和Repeater控件的分页显示功能 |
Asp.net提供了三个功能强大的列表控件:DataGrid、DataList和Repeater控件,相对DataGrid,DataList和Repeater控件具有更高的样式自定义性,很多时候我们喜欢使用DataList或Repeater控件来显示数据,但是Repeater和DataList没有分页功能,有时很不方便。 PagedDataSource类封装了DataGrid控件的属性,从而使DataGrid控件可以执行分页,它就是一个数据的容器,我们先把数据从数据库中读取出来放在这个容器中,然后设置容器的属性取出当前要显示的页上的部分数据,然后将此部分数据再绑定到页面上的显示控件上。 下面实例是Repeater控件和HyperLink控件结合PagedDataSource类实现的数据分页列表
数据功能实现源代码:
//对用于分页的类的引用 PagedDataSource pds=new PagedDataSource(); pds.DataSource=dt.DefaultView;//设置数据源(DataTable类型) pds.AllowPaging=true; //第页显示的行数 pds.PageSize=18;
//设置当前页 if(Pageindex<1) Pageindex=1; pds.CurrentPageIndex=Pageindex-1;
rpt_NewsList.DataSource=pds; rpt_NewsList.DataBind();
//显示页码 ltl_RecordCount.Text = pds.DataSourceCount.ToString(); ltl_PageCount.Text = pds.PageCount.ToString(); ltl_Pageindex.Text = Pageindex.ToString(); ltl_Jump.Text = Jump_List (pds.PageCount , Pageindex , L_Manage);
//显示上下翻页(URL后面跟的参数自已跟据需要定义) lbn_First.ToolTip = "跳转到首页"; lbn_First.NavigateUrl=Request.CurrentExecutionFilePath+"?Org_ID="+ L_Manage +"&page=1"; lbn_Prev.ToolTip = "跳转到上一页"; lbn_Prev.NavigateUrl=Request.CurrentExecutionFilePath+"?Org_ID="+ L_Manage +"&page="+(Pageindex-1); lbn_Next.ToolTip = "跳转到下一页"; lbn_Next.NavigateUrl=Request.CurrentExecutionFilePath+"?Org_ID="+ L_Manage +"&page="+(Pageindex+1); lbn_Last.ToolTip = "跳转到最后一页"; lbn_Last.NavigateUrl=Request.CurrentExecutionFilePath+"?Org_ID="+ L_Manage +"&page="+pds.PageCount.ToString();
//确定链接的显示方式 if(Pageindex<=1 && pds.PageCount<=1) { lbn_First.NavigateUrl = ""; lbn_Prev.NavigateUrl = ""; lbn_Next.NavigateUrl = ""; lbn_Last.NavigateUrl = ""; } if(Pageindex<=1 && pds.PageCount>1) { lbn_First.NavigateUrl = ""; lbn_Prev.NavigateUrl = ""; } if(Pageindex >= pds.PageCount) { lbn_Next.NavigateUrl = ""; lbn_Last.NavigateUrl = ""; }
/// <summary> /// 计算分页跳转 /// </summary> /// <param name="Pagecount">页面数</param> /// <returns>string</returns> private string Jump_List(int Pagecount , int Pageindex , long L_Manage) { StringBuilder sb = new StringBuilder (); sb.Append ("<select id=\"Page_Jump\" name=\"Page_Jump\" onchange=\"window.location=’"+ Request.CurrentExecutionFilePath +"?page=’+ this.options[this.selectedIndex].value + ’&Org_ID="+ L_Manage +"’;\">"); for(int i = 1 ; i <= Pagecount ; i++) { if(Pageindex == i) sb.Append ("<option value=’"+ i +"’ selected>"+ i +"</option>"); else sb.Append ("<option value=’"+ i +"’>"+ i +"</option>"); } sb.Append ("</select>");
return sb.ToString (); } |
|
| 上一篇:上一篇文章: asp.net 实现flv视频格式转换的方法 下一篇
下一篇文章: 没有了 |
收藏此文到 百度搜藏|
新浪VIvi|
365key|
Younote|
博采中心|
你好BLOG|
亿友网摘|
和讯网摘| |
|
|
|
|