欢迎光临
我们一直在努力

通用的分页类(不执行sql,直接绑定数据)-ASP教程,数据库相关

建站超值云服务器,限时71元/月

数据分页一直以来是比较头疼的问题,不少的分页控件也随之产生。但是我用过的几个控件,本身都要执行sql,对存储过程支持不好,为了方便,特别写了个通用分页类,利用pageddatasource来实现datagrid,datalist,repeater的分页。完成上一页,下一页,

最后一页,最前一页,总页数,当前页数,跳转这些基本的功能。

using system;

using system.collections;

using system.componentmodel;

using system.data;

using system.web;

using system.web.sessionstate;

using system.web.ui;

using system.web.ui.webcontrols;

using system.web.ui.htmlcontrols;

namespace aspnetpager

{

///

/// netpager-本类提供datagrid,datalist,repeater的通用分页—jierry 04-7-19

///

public class netpager: system.web.ui.page

{

private system.web.ui.webcontrols.datagrid datagrid=null;

private system.web.ui.webcontrols.datalist datalist=null;

private system.web.ui.webcontrols.repeater repeater=null;

private system.web.ui.webcontrols.hyperlink lnknext;

private system.web.ui.webcontrols.hyperlink lnkprev;

private system.web.ui.webcontrols.hyperlink lnkfist;

private system.web.ui.webcontrols.hyperlink lnklast;

private system.web.ui.webcontrols.hyperlink lnkjump;

private system.web.ui.webcontrols.label pagenum;

private system.web.ui.webcontrols.label pagecount;

private system.web.ui.webcontrols.dropdownlist list;

public netpager()

{

//

// todo: 在此处添加构造函数逻辑

//

}

public system.web.ui.webcontrols.datagrid datagrid

{

get

{

return this.datagrid;

}

set

{

this.datagrid=value;

}

}

public system.web.ui.webcontrols.datalist datalist

{

get

{

return this.datalist;

}

set

{

this.datalist=value;

}

}

public system.web.ui.webcontrols.repeater repeater

{

get

{

return this.repeater;

}

set

{

this.repeater=value;

}

}

public system.web.ui.webcontrols.hyperlink lnkprev

{

get

{

return this.lnkprev;

}

set

{

this.lnkprev=value;

}

}

public system.web.ui.webcontrols.hyperlink lnknext

{

get

{

return this.lnknext;

}

set

{

this.lnknext=value;

}

}

public system.web.ui.webcontrols.hyperlink lnkfist

{

get

{

return this.lnkfist;

}

set

{

this.lnkfist=value;

}

}

public system.web.ui.webcontrols.hyperlink lnklast

{

get

{

return this.lnklast;

}

set

{

this.lnklast=value;

}

}

public system.web.ui.webcontrols.hyperlink lnkjump

{

get

{

return this.lnkjump;

}

set

{

this.lnkjump=value;

}

}

public system.web.ui.webcontrols.label pagenum

{

get

{

return this.pagenum;

}

set

{

this.pagenum=value;

}

}

public system.web.ui.webcontrols.label pagecount

{

get

{

return this.pagecount;

}

set

{

this.pagecount=value;

}

}

public system.web.ui.webcontrols.dropdownlist list

{

get

{

return this.list;

}

set

{

this.list=value;

}

}

public void datapage(dataset ds,int pagenum)

{

pageddatasource objpds = new pageddatasource();

objpds.allowpaging =true;

//每页显示数目

objpds.pagesize =pagenum;

//指定数据源

objpds.datasource = ds.tables[0].defaultview;

int curpage;

//绑定dropdownlist数据

for(int i=1;i<=objpds.pagecount;i++)

{

this.list.items.add(i.tostring());

}

this.list.items.insert(0,new listitem("页数",""));

//确定当前页数

if (system.web.httpcontext.current.request.params["page"] != null)

{

curpage=convert.toint32(system.web.httpcontext.current.request.params["page"]);

}

else

{

curpage=1;

}

objpds.currentpageindex = curpage-1;

//显示当前页数

this.pagenum.text="页数:"+curpage.tostring();

//显示总共页数

this.pagecount.text="共有"+objpds.pagecount+"页";

//下一页

if (!objpds.islastpage)

{

lnknext.navigateurl=system.web.httpcontext.current.request.currentexecutionfilepath+"?page=" + convert.tostring(curpage+1);

}

//上一页

if(!objpds.isfirstpage)

{

lnkprev.navigateurl=system.web.httpcontext.current.request.currentexecutionfilepath+"?page="+convert.tostring(curpage-1);

}

//第一页

if(curpage!=1)

{

lnkfist.navigateurl=system.web.httpcontext.current.request.currentexecutionfilepath+"?page="+convert.tostring(1);

}

//最后一页

if(curpage!=objpds.pagecount)

{

lnklast.navigateurl=system.web.httpcontext.current.request.currentexecutionfilepath+"?page="+convert.tostring(objpds.pagecount);

}

//绑定datagrid

if(this.datagrid!=null)

{

datagrid.datasource=objpds;

datagrid.databind();

}

//绑定datalist

if(this.datalist!=null)

{

datalist.datasource=objpds;

datalist.databind();

}

//绑定repeater

if(this.repeater!=null)

{

repeater.datasource=objpds;

repeater.databind();

}

}

//dropdownlist选择改变

public void select()

{

this.lnkjump.navigateurl=system.web.httpcontext.current.request.currentexecutionfilepath+"?page="+convert.tostring(this.list.selecteditem.value);

}

}

}

使用方法:

1.在引用里添加aspnetpager.dll的引用

2.using aspnetpager;

3.private netpager pager;

4.

page_load()

if(!ispostback)

{

pager=new netpager();

pager.datagrid=this.datagrid1;

pager.datalist=this.datalist1;

pager.repeater=this.repeater1;

pager.lnknext=this.hyperlink1;

pager.lnkprev=this.lnkprev;

pager.lnklast=this.lnklast;

pager.lnkfist=this.lnkfist;

pager.pagenum=this.label1;

pager.pagecount=this.label2;

pager.list=this.dropdownlist1;

dataset ds=new dataset();

ds.readxml(server.mappath("test.xml"));

pager.datapage(ds,5);

}

5.private void dropdownlist1_selectedindexchanged(object sender, system.eventargs e)

{

pager=new netpager();

pager.list=this.dropdownlist1;

pager.lnkjump=this.hyperlink3;

pager.select();

}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 通用的分页类(不执行sql,直接绑定数据)-ASP教程,数据库相关
分享到: 更多 (0)

相关推荐

  • 暂无文章