方法一:
datagridpaging.aspx
<%@ page language="c#" enableviewstate = "true" codebehind="datagridpaging.aspx.cs"
autoeventwireup="false" inherits="emeng.exam.datagridpaging.datagridpaging" %>
datagridpaging.aspx.cs
using system;
using system.collections;
using system.componentmodel;
using system.data;
using system.data.oledb;
using system.drawing;
using system.web;
using system.web.sessionstate;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.htmlcontrols;
namespace emeng.exam.datagridpaging
{
///
/// datagridpaging 的摘要说明。
///
public class datagridpaging : system.web.ui.page
{
protected system.web.ui.webcontrols.datagrid mydatagrid;
protected system.web.ui.webcontrols.label lblpagecount;
protected system.web.ui.webcontrols.label lblcurrentindex;
protected system.web.ui.webcontrols.linkbutton btnfirst;
protected system.web.ui.webcontrols.linkbutton btnprev;
protected system.web.ui.webcontrols.linkbutton btnnext;
protected system.web.ui.webcontrols.linkbutton btnlast;
private oledbconnection cn = new oledbconnection();
private void page_load(object sender, system.eventargs e)
{
// 在此处放置用户代码以初始化页面
btnfirst.text = "最首页";
btnprev.text = "前一页";
btnnext.text = "下一页";
btnlast.text = "最后页";
opendatabase();
bindgrid();
}
private void opendatabase()
{
cn.connectionstring = "provider=microsoft.jet.oledb.4.0;data source=" + server.mappath("xxxx.mdb");
cn.open();
}
private void showstats()
{
lblcurrentindex.text = "第 " + (mydatagrid.currentpageindex + 1).tostring() + " 页";
lblpagecount.text = "总共 " + mydatagrid.pagecount.tostring() + " 页";
}
public void pagerbuttonclick(object sender, eventargs e)
{
string arg = ((linkbutton)sender).commandargument.tostring();
switch(arg)
{
case "next":
if (mydatagrid.currentpageindex < (mydatagrid.pagecount - 1))
{
mydatagrid.currentpageindex += 1;
}
break;
case "prev":
if (mydatagrid.currentpageindex > 0)
{
mydatagrid.currentpageindex -= 1;
}
break;
case "last":
mydatagrid.currentpageindex = (mydatagrid.pagecount - 1);
break;
default:
mydatagrid.currentpageindex = system.convert.toint32(arg);
break;
}
bindgrid();
showstats();
}
public void bindgrid()
{
oledbconnection myconnection = cn;
dataset ds = new dataset();
oledbdataadapter adapter = new oledbdataadapter("select title,createdate from document", myconnection);
adapter.fill(ds, "document");
mydatagrid.datasource = ds.tables["document"].defaultview;
mydatagrid.databind();
showstats();
}
public void mydatagrid_page(object sender, datagridpagechangedeventargs e)
{
int startindex ;
startindex = mydatagrid.currentpageindex * mydatagrid.pagesize;
mydatagrid.currentpageindex = e.newpageindex;
bindgrid();
showstats();
}
#region web form designer generated code
override protected void oninit(eventargs e)
{
//
// codegen:该调用是 asp.net web 窗体设计器所必需的。
//
initializecomponent();
base.oninit(e);
}
///
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
///
private void initializecomponent()
{
this.load += new system.eventhandler(this.page_load);
}
#endregion
}
}
方法二:
datagridpaging2.aspx
<%@ page language="c#" enableviewstate = "true" codebehind="datagridpaging2.aspx.cs" autoeventwireup="false"
inherits="emeng.exam.datagridpaging2.datagridpaging2" %>
功能齐全的分页的例子【2】
datagridpaging2.aspx.cs
using system;
using system.collections;
using system.componentmodel;
using system.data;
using system.data.oledb;
using system.drawing;
using system.web;
using system.web.sessionstate;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.htmlcontrols;
namespace emeng.exam.datagridpaging2
{
///
/// datagridpaging 的摘要说明。
///
public class datagridpaging2 : system.web.ui.page
{
protected system.web.ui.webcontrols.datagrid mydatagrid;
protected system.web.ui.webcontrols.label lblpagecount;
protected system.web.ui.webcontrols.label lblcurrentindex;
protected system.web.ui.webcontrols.linkbutton btnfirst;
protected system.web.ui.webcontrols.linkbutton btnprev;
protected system.web.ui.webcontrols.linkbutton btnnext;
protected system.web.ui.webcontrols.linkbutton btnlast;
private oledbconnection cn = new oledbconnection();
private void page_load(object sender, system.eventargs e)
{
// 在此处放置用户代码以初始化页面
btnfirst.text = "最首页";
btnprev.text = "前一页";
btnnext.text = "下一页";
btnlast.text = "最后页";
opendatabase();
bindgrid();
}
private void opendatabase()
{
cn.connectionstring = "provider=microsoft.jet.oledb.4.0;data source="
+ httpcontext.current.server.mappath("../../aspxweb.mdb.ascx");
cn.open();
}
private void showstats()
{
lblcurrentindex.text = "第 " + (mydatagrid.currentpageindex + 1).tostring() + " 页";
lblpagecount.text = "总共 " + mydatagrid.pagecount.tostring() + " 页";
}
public void pagerbuttonclick(object sender, eventargs e)
{
string arg = ((linkbutton)sender).commandargument.tostring();
switch(arg)
{
case "next":
if (mydatagrid.currentpageindex < (mydatagrid.pagecount - 1))
{
mydatagrid.currentpageindex += 1;
}
break;
case "prev":
if (mydatagrid.currentpageindex > 0)
{
mydatagrid.currentpageindex -= 1;
}
break;
case "last":
mydatagrid.currentpageindex = (mydatagrid.pagecount - 1);
break;
default:
mydatagrid.currentpageindex = system.convert.toint32(arg);
break;
}
bindgrid();
showstats();
}
public void bindgrid()
{
oledbconnection myconnection = cn;
dataset ds = new dataset();
oledbdataadapter adapter = new oledbdataadapter("select title,createdate from document", myconnection);
adapter.fill(ds, "document");
mydatagrid.datasource = ds.tables["document"].defaultview;
mydatagrid.databind();
showstats();
}
#region web form designer generated code
override protected void oninit(eventargs e)
{
//
// codegen:该调用是 asp.net web 窗体设计器所必需的。
//
initializecomponent();
base.oninit(e);
}
///
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
///
private void initializecomponent()
{
this.mydatagrid.pageindexchanged += new system.web.ui.webcontrols.datagridpagechangedeventhandler(this.onpageindexchanged);
this.btnfirst.click += new system.eventhandler(this.pagerbuttonclick);
this.btnprev.click += new system.eventhandler(this.pagerbuttonclick);
this.btnnext.click += new system.eventhandler(this.pagerbuttonclick);
this.btnlast.click += new system.eventhandler(this.pagerbuttonclick);
this.load += new system.eventhandler(this.page_load);
}
#endregion
private void onpageindexchanged(object source, system.web.ui.webcontrols.datagridpagechangedeventargs e)
{
int startindex ;
startindex = mydatagrid.currentpageindex * mydatagrid.pagesize;
mydatagrid.currentpageindex = e.newpageindex;
bindgrid();
showstats();
}
}
}