Username: Password:

一个功能齐全的DataGrid分页例子(两种方法)-.NET教程,数据库应用
来源:作者: 发布时间:2007-12-25 13:34:28

 

方法一:

datagridpaging.aspx

<%@ page language="c#" enableviewstate = "true" codebehind="datagridpaging.aspx.cs"
 autoeventwireup="false" inherits="emeng.exam.datagridpaging.datagridpaging" %>









 horizontalalign="center" alternatingitemstyle-backcolor="#eeeeee"
 headerstyle-backcolor="#aaaadd" font-size="8pt" font-name="verdana"
 cellspacing="0" cellpadding="3" gridlines="both" borderwidth="1"
 bordercolor="black" onpageindexchanged="mydatagrid_page" pagerstyle-horizontalalign="right"
 pagerstyle-mode="numericpages" pagesize="5" allowpaging="true">
 
 
 
 
 
 

 
 

 



   
 
     font-size="8pt" forecolor="navy" commandargument="0"> 
     font-size="8pt" forecolor="navy" commandargument="prev"> 
     font-size="8pt" forecolor="navy" commandargument="next"> 
     font-size="8pt" forecolor="navy" commandargument="last">




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】
 
 
 


 


         alternatingitemstyle-backcolor="#eeeeee" headerstyle-backcolor="#aaaadd" font-size="8pt"
      font-name="verdana" cellspacing="0" cellpadding="3" gridlines="both" borderwidth="1"
       bordercolor="black" pagerstyle-horizontalalign="right" pagerstyle-mode="numericpages"
        pagesize="5" allowpaging="true">
     
     
     
     
       
                 dataformatstring="{0:yyyy-mm-dd hh:mm:ss}">
     

   

   


       
     
       
       
       
     
   


 


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();
 }
}
}

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅