| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 476 人关注过本帖
标题:[分享]我的.NET分页
只看楼主 加入收藏
caiyakang
Rank: 2
等 级:新手上路
威 望:5
帖 子:2111
专家分:0
注 册:2005-3-24
收藏
 问题点数:0 回复次数:1 
[分享]我的.NET分页

/*----------------------------------------
使用类似ASP分页的方法来对ASP.NET实现分页
原创:caiyakang
功能:使用封装在DataGrid中的System.Web.UI.WebControls.PageDataSource
来实现Repeater,DataList分页.
此方法类似ASP的分页方法
--------------------------------------*/
代码如下:
private string PTypeID; //将要显示的栏目编号
private int PageNo; //当前页
//绑定到DataList
private void BindToDataList(int pageno)
{
....取得数据源省略,就是myar.GetDataSource为得到数据源.
System.Web.UI.WebControls.PagedDataSource pds=new PagedDataSource(); //创建分页实例
pds.DataSource=myar.GetDataSource.DefaultView; //绑定数据源到分页实例上,一定要绑定要DefaultView
pds.AllowPaging=true; //允许分页
pds.PageSize=12; //每页大小
if(pageno<1) //判断当前页
{
pageno=1;
}
if(pageno>pds.PageCount) //判断当前页
{
pageno=pds.PageCount;
}
pds.CurrentPageIndex=pageno-1;//因为真正显示的时候,页数是从0开始,所以要减1
this.DLPhoto.DataSource=pds; //把分页实例作为DataList的数据源
this.DLPhoto.DataBind();
string url="PhotoView.aspx?pid="+this.PhotoID;
string pagestring=myar.showpage(pageno,pds.PageCount,pds.DataSourceCount,url,pds.PageSize,"条评论");
this.LabPage.Text=pagestring;
myar.GetDataSource.Clear();
}
我是根据自已常用的ASP分页进行改的,所以以下很类似ASP中的分页.
/*参数:
PageNo:当前页
TotalPage:总页数
TotalCount:总数量
url链接地址
PageSize:每页大小
unit:...;
*/
public string showpage(int PageNo,int TotalPage,int TotalCount,string url,int PageSize,string unit)
{
string PageMsg;
PageMsg="共有<b><font color='blue'>"+TotalCount+"</font></b>"+unit+" ";
PageMsg=PageMsg+"<b><font color='red'>"+PageNo+"</font></b>";
PageMsg=PageMsg+"/<b><font color='blue'>"+TotalPage+"</font></b> ";
if(PageNo==1)
{
PageMsg=PageMsg+"首页 ";
PageMsg=PageMsg+"上一页 ";
}
else
{
PageMsg=PageMsg+"<a href="+url+"&page=1>首页</a> ";
PageMsg=PageMsg+"<a href="+url+"&page="+(PageNo-1)+">上一页</a> ";
}
if(PageNo==TotalPage)
{
PageMsg=PageMsg+"下一页 ";
PageMsg=PageMsg+"尾页 ";
}
else
{
PageMsg=PageMsg+"<a href="+url+"&page="+(PageNo+1)+">下一页 </a> ";
PageMsg=PageMsg+"<a href="+url+"&page="+TotalPage+">尾页 </a> ";
}
PageMsg=PageMsg+PageSize+"<b><font color='blue'>"+unit+"</font></b>/页";
return PageMsg;
}
private void Page_Load(object sender, System.EventArgs e)
{
this.PTypeID=Request.QueryString["ptid"].ToString(); //得到栏目编号号
this.PageNo=Convert.ToInt32(Request.QueryString["page"]);//得到当前页
if(!this.IsPostBack)
{
this.BindToDataList(this.PageNo);//对当前页进行数据绑定
}

}


顺便求个Asp.Net Forums2.0源码~网上实在没找到!!
谢谢了

2006-04-25 13:09
caiyakang
Rank: 2
等 级:新手上路
威 望:5
帖 子:2111
专家分:0
注 册:2005-3-24
收藏
得分:0 
测试地址:http://58.53.32.17/MyHomePage/index.aspx
账号:caiyakang
密码:caiyakang

中国人的财富网:http://www..cn/
2006-04-25 15:58
快速回复:[分享]我的.NET分页
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045272 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved