效果图如下:


前台代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="01.aspx.cs" Inherits="_01" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title></title>
    
<link href="css/css.css" rel="stylesheet" type="text/css" />
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:Repeater ID="rptTest" runat="server">
            
<HeaderTemplate><table class="border"></HeaderTemplate>
            
<ItemTemplate><tr><td class="td"><%#Eval("id")%></td><td class="td"><%#Eval("title")%></td><td class="td"><%#Eval("usercode")%></td></tr></ItemTemplate>
            
<FooterTemplate></table></FooterTemplate>
        
</asp:Repeater>
    
</div>
     
<br />
    
<div id="wayduPager">
          第
<asp:Label ID="lblPageIndex" runat="server" Text="1" ForeColor="Red"></asp:Label>页/总<asp:Label ID="lblMaxPage" runat="server" Text="1" ForeColor="Red"></asp:Label>&nbsp;|&nbsp;每页<asp:Label ID="lblPageSize" runat="server" Text="1" ForeColor="Red"></asp:Label>&nbsp;&nbsp;<asp:Label ID="lblTotalCount" runat="server" Text="1" ForeColor="Red"></asp:Label>&nbsp;|&nbsp;<asp:LinkButton ID="lnkFirst" OnClick="lnkFirst_Click" runat="server">首 页</asp:LinkButton>&nbsp;|&nbsp;<asp:LinkButton ID="lnkPrev" OnClick="lnkPrev_Click" runat="server">上一页</asp:LinkButton>&nbsp;|&nbsp;<asp:LinkButton ID="lnkNext" OnClick="lnkNext_Click" runat="server">下一页</asp:LinkButton>&nbsp;|&nbsp;<asp:LinkButton ID="lnkLast" OnClick="lnkLast_Click" runat="server">尾 页</asp:LinkButton>&nbsp;|&nbsp;转到:第<asp:DropDownList ID="ddlselectPage" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlselectPage_SelectedIndexChanged"></asp:DropDownList>
    
</div>
    
</form>
</body>
</html>

后台代码:

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Data;

public partial class _01 : System.Web.UI.Page
{

    
protected void Page_Load(object sender, EventArgs e)
    {
        
if(!IsPostBack)
        {
            BindList();
        }
    }

    
#region 绑定数据源
    
private void BindList()
    {
        
string sql = " select id,title,memberid,(select usercode from t_mem_memberinfo where memberid=a.memberid) as usercode from t_blog a order by id desc ";
        DataSet ds 
= sqlDatabase.getDS(sql);
        
//-----------------------分页代码-----------------------//
        PagedDataSource Pds = new PagedDataSource();
        Pds.DataSource 
= ds.Tables[0].DefaultView;

        Pds.AllowPaging 
= true//开启分页
        Pds.PageSize = 15//分页

        
int index = int.Parse(lblPageIndex.Text); //当前页数
        int PageSize = Pds.PageSize;              //每页记录数
        int TotalRecords = Pds.DataSourceCount;   //总记录数
        int TotalPages = TotalRecords / PageSize;//总页数(总记录数除以每页的记录数) 
        int ModePages = TotalRecords % PageSize;//得到取模的余数(总记录数取模每页的记录数) 

        
if (ModePages > 0)//如果取模数不等于0,则把总页数加1 
        {
            TotalPages 
+= 1;
        }
        
if (TotalPages == 0)
        {
            TotalPages 
= 1;
        }
        
this.ViewState["TotalPages"= TotalPages;    //保存"总页数"到页面视图中

        lblMaxPage.Text 
= TotalPages.ToString();      //显示页面上的总页数 
        lblTotalCount.Text = TotalRecords.ToString(); //显示页面上的总记录数 
        lblPageSize.Text = Pds.PageSize.ToString();   //每页记录数
        Pds.CurrentPageIndex = index - 1;
        
//若是"第一页"
        if (index == 1)
        {
            lnkFirst.Enabled 
= false;
            lnkPrev.Enabled 
= false;
            
if (TotalPages > 1)
            {
                lnkNext.Enabled 
= true;
                lnkLast.Enabled 
= true;
            }
            
else
            {
                lnkNext.Enabled 
= false;
                lnkLast.Enabled 
= false;
            }
        }
        
else
        {
            lnkFirst.Enabled 
= true;
            lnkPrev.Enabled 
= true;
            
//若是"尾页"
            if (index == TotalPages)
            {
                lnkNext.Enabled 
= false;
                lnkLast.Enabled 
= false;
            }
            
else
            {
                lnkNext.Enabled 
= true;
                lnkLast.Enabled 
= true;
            }
        }

        ddlselectPage.Items.Clear(); 
//清除防止累加
        for (int i = 1; i <= TotalPages; i++)
        {
            ddlselectPage.Items.Add(i.ToString());
        }
        ddlselectPage.Items.FindByText(index.ToString()).Selected 
= true//把当前页显示在列表框的第一个

        
this.rptTest.DataSource = Pds;
        
this.rptTest.DataBind();
    }
    
#endregion

    
#region "首页"事件
    
protected void lnkFirst_Click(object sender, EventArgs e)
    {
        
int index = 1;
        lblPageIndex.Text 
= index.ToString();
        BindList();
    }
    
#endregion

    
#region "上一页"事件
    
protected void lnkPrev_Click(object sender, EventArgs e)
    {
        
int index = int.Parse(lblPageIndex.Text);
        index
--;
        lblPageIndex.Text 
= index.ToString();
        BindList();
    }
    
#endregion

    
#region "下一页"事件
    
protected void lnkNext_Click(object sender, EventArgs e)
    {
        
int index = int.Parse(lblPageIndex.Text);
        index
++;
        lblPageIndex.Text 
= index.ToString();
        BindList();
    }
    
#endregion

    
#region "尾页"事件
    
protected void lnkLast_Click(object sender, EventArgs e)
    {
        
int index = Convert.ToInt32(this.ViewState["TotalPages"].ToString());
        lblPageIndex.Text 
= index.ToString();
        BindList();
    }
    
#endregion

    
#region "转到"事件
    
protected void ddlselectPage_SelectedIndexChanged(object sender, EventArgs e)
    {
        lblPageIndex.Text 
= ddlselectPage.SelectedValue;
        BindList();
    }
    
#endregion
}
posted on 2009-07-08 12:45  钱途无梁  阅读(507)  评论(0编辑  收藏  举报