分页显示DataGrid

原创 2006年06月22日 11:20:00

这是我在工作中遇到过的。可能大家觉得很简单,但我还是发表出来。大家如果有什么更好的方法,请给我留言。

private void BindGrid()
  {
   string str = "select * from toplist where [type] = 5";
   DataTable dt=Kubao.CommonPrj.DBA.SQL.LoadDataTable(Kubao.cls_ClassLib.Conn_Mov,str);
   DataView dataview = new DataView();
   dataview=dt.DefaultView;
   DataGrid1.DataSource = dt.DefaultView;
   DataGrid1.DataBind();
  
   string cPage;
   int pageSize = 2;
   int currentPage;
   int pageCount;
   int numResults = 0;

   if (Request.QueryString["page"]==null)
   {
    cPage="1";
   }
   else
   {
    cPage=Request.QueryString["page"].ToString();
   }
   try
   {
    currentPage = Int32.Parse(cPage);
   }
   catch
   {
    currentPage = 1;
   }

   numResults = 0;
   int start = (int)((currentPage - 1) * pageSize);
   int to = (int)(currentPage * pageSize);
   if (start <= 0) start = 0;

   numResults = dataview.Count;
   int a1=0;
   pageCount = Math.DivRem(numResults,pageSize,out a1);
   if (a1>0)
   {
    pageCount++;
   }
   if(currentPage>pageCount || currentPage<=0)
   {
    currentPage = 1;
   }
   if(currentPage==pageCount)
   {
    to = dataview.Count;
   }
  
   // Create one DataTable with one column.
   DataTable myTable = new DataTable("myTable");
   myTable = dataview.Table.Clone();
   //add row
   DataRow NewRow;
   for(int i=start;i<numResults;i++)
   {
    if(i<to)
    {
     NewRow = myTable.NewRow();
     for(int k=0;k<dataview.Table.Columns.Count;k++)
     {
      NewRow[k] = dataview.Table.Rows[i][k];
     }
     myTable.Rows.Add(NewRow);
    }
   }
   myTable.AcceptChanges();

   DataView resultDataview = new DataView(myTable);
   DataGrid1.DataSource = resultDataview;
   DataGrid1.DataBind();

   //生成页导航条
   string strNav = "";
   int endpage;
   if (currentPage>1)
   {
    strNav += "<a href='?page="+ (currentPage-1).ToString() +"'>上一页</a>  ";
   }
   if (currentPage>11)
   {
    strNav += "<a href='?page=1'>1</a> ...";
   }
   if(pageCount>currentPage+10)
   {
    endpage = currentPage+10;
   }
   else
   {
    endpage = pageCount;
   }
   for (int i=currentPage-10;i<endpage+1;i++)
   {
    if(i>=1)
    {
     if (i==currentPage)
     {
      strNav +="<font color=#990000><strong>"+ i.ToString() +"</strong></font> ";
     }
     else
     {
      strNav += "<a href='?page="+ i.ToString() +"'>"+ i.ToString() +"</a> ";
     }
    }
   }
   if((currentPage+10)<pageCount)
   {
    strNav += "... <a href='?page="+ pageCount.ToString() +"'>"+ pageCount.ToString() +"</a>";
   }
   if(currentPage<pageCount)
   {
    strNav += " <a href='?page="+ (currentPage+1).ToString() +"'>下一页</a>  ";
   }

   Literal1.Text = strNav;  
   Literal2.Text = "共 "+ numResults.ToString() +" 条供应信息,当前显示第 "+
    (start+1).ToString() +" - "+ to.ToString()  +" 条,共 "+ pageCount.ToString() +" 页";
  }

相关文章推荐

EasyUI Datagrid 分页显示(服务端)

EasyUI Datagrid 分页显示(服务端) By ZYZ          为了解决大数据量下显示数据的问题,我们需要这样的一个效果:用户每次操作分页工具栏的时候向数据库获取新的数据,服务器...
  • Metal1
  • Metal1
  • 2013年12月24日 21:08
  • 14041

实例:SSh结合Easyui实现Datagrid的分页显示

近日学习Easyui,发现非常好用,界面很美观。将学习的心得在此写下,这篇博客写SSh结合Easyui实现Datagrid的分页显示,其他的例如添加、修改、删除、批量删除等功能将在后面的博客一一写来。...
  • sbvfhp
  • sbvfhp
  • 2013年06月26日 09:34
  • 22862

【ssm个人博客项目实战05】easy ui datagrid实现数据的分页显示

前面一节 我们已经实现博客类别的dao层的实现,其中特别讲解了博客类别的分页的实现,那么现在我们实现了后台的分页,那么前台分页怎么显示呢,这时候我们用到了easyui的datagrid了。 先上一下...

jquery easyui datagrid分页显示数据

(mhw)
  • Metal1
  • Metal1
  • 2013年11月30日 14:17
  • 11691

EasyUI Datagrid 分页显示(客户端)

EasyUI Datagrid 分页显示(客户端) By ZYZ        在使用JQuery EasyUI 的Datagrid 控件时,其中的pagination(分页控件)非常有用,该...
  • Metal1
  • Metal1
  • 2013年12月24日 20:54
  • 10968

easyui-datagrid使用load()保持分页显示数量

easyui snippet 2017-6-20 14:41:26 我之前用easyui-datagrid都是使用的下面这种方法加载数据,查询按钮就是再调一次这个方法。这样做有个小问题,就是...
  • lich1n
  • lich1n
  • 2017年06月20日 14:52
  • 68

jsp分页显示

  • 2017年09月21日 11:24
  • 16KB
  • 下载

PHP分页显示类

  • 2014年09月27日 22:33
  • 3KB
  • 下载

ListView分页显示 上拉加载更多

这是程序实现的效果 现在来分析是如何做到的 先来配置footermore的布局文件 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:分页显示DataGrid
举报原因:
原因补充:

(最多只允许输入30个字)