快捷搜索:

非数据库数据源分页的实现

暂时测试地址:

202.127.144.107/overred/nodatapage.htm

下载地址:

chinaeduonline.net/rar/nodatapage.rar

里面有具体的阐明

主要代码:

把ArrayList(或数组)的数据源绑定到repeater,并进行分页

+++demo++++

aspx

__________________________________________

当前页:

1

Label

____________________________________________________

.cs

____________________________________________________________

public class t1 : System.Web.UI.Page

{

protected System.Web.UI.WebControls.Label dq;

protected System.Web.UI.WebControls.Label link;

protected System.Web.UI.WebControls.Label d;

protected System.Web.UI.WebControls.Repeater rtestt;

protected System.Web.UI.WebControls.Repeater rtest;

private int pagesize;//每页显示的记录数目

public void Page_Load(object sender, System.EventArgs e)

{

// 在此处放置用户代码以初始化页面

if(!Page.IsPostBack)

pagesize=40; //每页显示的记录数目

this.rtest.DataSource=Datasource();//直接绑定到数据源

this.rtest.DataBind();

}

//设置ArrayList,供ArrayList Datasource()调用

public ArrayList Data()

{

//++++给repeater构造数据源,长度变量为j+++++++++++++++++++++++++++++++++++++++++++++++++++++

ArrayList s=new ArrayList();

for(int j=1;j"+(link+1)+"";

}

}

//不能被整除的处置惩罚

if(s.Count!=pagesize*(s.Count/pagesize))

{

for(int link=0;link"+(link+1)+"";

}

}

//判断是否能记录是否能被页数整除

if(s.Count==pagesize*(s.Count/pagesize))

{

int k=rek;

if((k*pagesize)

/// 设计器支持所需的措施 - 不要应用代码编辑器改动

/// 此措施的内容。

///

private void InitializeComponent()

{

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

}

思路:

建立个ArrayList Data(),储存所有的数据.

而ArrayList Datasource()则为从总的数据源中取要显示的某部分.

也便是你看到确当前页的数据.

实现措施:

首先找到当前页的开始位置i,(即s[i]中的i是几)和当前页停止时的i

并把他们添加到ArrayList subs中

此中ArrayList subs只储存当前页的记录.

主要变量声明:

pagesize 每页显示的记录数目

j 数据源的总记录数值(我设置的为99,由于1=j

您可能还会对下面的文章感兴趣: