ASP.NET2.0中datalist仿百度分页

 

代码

//ASP.NET2.0中datalist仿百度分页  
//注意这个分页在1.0中无效  
using System;  
using System.Data;  
using System.Configuration;  
using System.Collections;  
using System.Web;  
using System.Web.Security;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Web.UI.WebControls.WebParts;  
using System.Web.UI.HtmlControls;  
using MySql.Data.MySqlClient;  
using System.Data.SqlClient;  
using System.IO;  
public partial class mysql : System.Web.UI.Page  
{  
    SqlConnection conn 
= new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["constrmy"]);  
    
int ToatalCountRecord;//总记录数  
    int PageItem = 4;//每页显示的条数  
    int CurrentPage = 1;//当前页数  
    protected void Page_Load(object sender, EventArgs e)  
    {  
         
        
if (!this.Page.IsPostBack)  
        {  
            
if (Request.QueryString["page"!= null)  
            {  
                
if (!Int32.TryParse(Request.QueryString["page"].ToString(), out CurrentPage))  
                {  
                    Response.Write(
"请输入分页参数!");  
                    Response.End();  
                    
return;  
                }  
            }  
             
            
this.BuidGrid();  
        }  
    }  
     
    
private void BuidGrid()  
    {  
        
string s2 = "select * from ts1";  
        SqlDataAdapter da 
= new SqlDataAdapter(s2, conn);  
        DataSet ds 
= new DataSet();  
        
int startRecord = (CurrentPage - 1* PageItem;  
        da.Fill(ds, startRecord, PageItem, 
"a");  
        
this.DataList1.DataSource = ds.Tables["a"].DefaultView;  
        
this.DataList1.DataBind();  
        SqlCommand comm 
= new SqlCommand("select count(*) from ts1", conn);  
        conn.Open();  
        ToatalCountRecord 
= Convert.ToInt32(comm.ExecuteScalar());  
        conn.Close();  
        BuildPages();  
    }  
    
private void BuildPages()  
    {  
        
int Step = 5;//偏移量  
        int LeftNum = 0;//做界限  
        int RightNum = 0;//右界限  
        string PageUrl = Request.FilePath;  
        
int PageCount = (int)Math.Ceiling((double)(ToatalCountRecord) / PageItem);  
        
if (CurrentPage - Step   < 1)  
        {  
            LeftNum 
= 1;  
        }  
        
else  
        {  
            LeftNum 
= CurrentPage - Step;  
        }  
        
if (CurrentPage + Step > PageCount)  
        {  
            RightNum 
= PageCount;  
        }  
        
else  
        {  
            RightNum 
= CurrentPage + Step;  
        }  
        
string OutPut = "";  
        
if (CurrentPage > 1)  
        {  
            OutPut 
+= "  <a href='" + PageUrl + "?page=" + (CurrentPage - 1+ "'>" + "上一页" + "  </a>";  
        }  
        
for (int i = LeftNum; i   <= RightNum; i++)  
        {  
            
if (i == CurrentPage)  
            {  
                OutPut 
+= "  <font color=red>" + " " +"["+i.ToString() +"]"+ "" + "  </font>";  
            }  
            
else  
            {  
                OutPut 
+= "  <a href='" + PageUrl + "?page=" + i.ToString() + "'>" + " " +"["+ i.ToString() +"]"+ " " + "  </a>";  
            }  
        }  
        
if (CurrentPage   < PageCount)  
        {  
            OutPut 
+= "  <a href='" + PageUrl + "?page=" + (CurrentPage + 1+ "'>" + "下一页" + "  </a>";  
        }  
        
this.PageInfo.InnerHtml = OutPut;  
    }  
   

 
//请注意颜色标注部分  
//需要在前台添加一个   <div id="PageInfo" runat="server" >   

 

 

posted @ 2010-09-15 08:21  唔愛吃蘋果  阅读(431)  评论(0编辑  收藏  举报