| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 582 人关注过本帖
标题:实现DataGrid的分页
只看楼主 加入收藏
yichen
Rank: 1
等 级:新手上路
帖 子:303
专家分:0
注 册:2005-3-9
收藏
 问题点数:0 回复次数:2 
实现DataGrid的分页
private void BindGrid()  
  {  
   SqlConnection con=new SqlConnection("server=.;database=Northwind;uid=d;pwd=d;");  
    con.Open();  
   DataSet ds = new DataSet();  
   SqlDataAdapter sqlAdapter = new SqlDataAdapter("select * from Customers",con);  
    sqlAdapter.Fill(ds,"users");  
   
     DataView dataview = new DataView();  
   dataview = ds.Tables[0].DefaultView;  
   
   DataGrid1.DataSource = ds.Tables[0].DefaultView;  
   DataGrid1.DataBind();  
      
      
   string cPage;  
   int pageSize = 10;  
   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();  
   
   /// <summary>  
   ///  生成页导航条。  
   /// </summary>  
   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() +" 页";  
              }
 
然后在page_load事件里 写入BindGrid() ;

[此贴子已经被作者于2005-10-17 11:35:54编辑过]


搜索更多相关主题的帖子: DataGrid 
2005-10-17 11:29
islet
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:89
帖 子:6548
专家分:0
注 册:2005-1-28
收藏
得分:0 
挺好
2005-10-17 14:28
tianlei
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-2-26
收藏
得分:0 

叹年光过去 功名未立 书生老去 机会方来
2005-10-17 16:19
快速回复:实现DataGrid的分页
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037954 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved