自开发Repeater分页

源部分:

<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager runat="server" ID="scriptManage1">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="updatePanelTest" runat="server">
     <ContentTemplate>
     <div id="center-top" > <div class="fon"><center>这是标题</center></div> </div>
                   <div id="center-content_Default2" >
                   <asp:Repeater runat="server" Id="repeaterMain" >
                        <ItemTemplate>
                        <div id="pic-out" >
                            <li class="pic-a" >编号<%# DataBinder.Eval(Container.DataItem,"UserID") %></li>
                            <li class="pic-b" >姓名<%# DataBinder.Eval(Container.DataItem,"UserName")%></li>
                            <li>密码<%#Eval("UserPwd")%> </li>
                        </div>
                        </ItemTemplate>
                   </asp:Repeater>
                   </div>
              <div style="PADDING-TOP:10px; text-align:center"  >
            &nbsp; 共<asp:label id="labPageCount" ForeColor="#ff0000" Runat="server"></asp:label>页/
                     <asp:label id="labTotalCount" ForeColor="#ff0000" Runat="server"></asp:label>条记录
                    <asp:linkbutton id="linkBtnFistPage" Runat="server" CommandName="first" OnClick="Pager_Click">首頁</asp:linkbutton>
                    <asp:linkbutton id="linkBtnPrevPage" Runat="server" CommandName="prev" OnClick="Pager_Click">上一頁</asp:linkbutton>
                    <asp:linkbutton id="linkBtnNextPage" Runat="server" CommandName="next" OnClick="Pager_Click">下一頁</asp:linkbutton>
                    <asp:linkbutton id="linkBtnLastPage" Runat="server" CommandName="last" OnClick="Pager_Click">尾頁</asp:linkbutton>当前第
                    <asp:label id="labCurrentPage" ForeColor="#ff0000" Runat="server"></asp:label>頁
           &nbsp; 转到第
           <asp:textbox id="tboxGotoPage" Width="30px" Runat="server" AutoPostBack="True"
                      MaxLength="5" ontextchanged="tboxGotoPage_TextChanged" ></asp:textbox>頁
           </div>
     </ContentTemplate>
    </asp:UpdatePanel>
    </div>
    </form>
</body>

后台代码部分:

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Text;
using Microsoft.ApplicationBlocks.Data;

public partial class _Default : System.Web.UI.Page
{
    int intSumCount = 0;//总记录数
    int intPageCount = 0;//总页数
    int intCurrentPage = 1;//当前页数
    int intPageSize = 1;//每一页的记录数
    public static int intPageIndex = 1;
    protected void Page_Load(object sender, EventArgs e)
    {
        //if (!IsPostBack)
        //{
            intSumCount = getSumCount();
            intPageCount = intSumCount / intPageSize + GetOverPage();
            labTotalCount.Text = intSumCount.ToString();
            labPageCount.Text = intPageCount.ToString();
            linkBtnFistPage.Enabled = false;
            linkBtnPrevPage.Enabled = false;
            if (intSumCount <= intPageSize)
                tboxGotoPage.Enabled = false;
            else
                tboxGotoPage.Enabled = true;
        if(!IsPostBack)
        {
            BindMainData();
        }
    }

    #region 事件
    protected void tboxGotoPage_TextChanged(object sender, EventArgs e)
    {
        int intPageIndex = 0;
        try
        {
            intPageIndex = Convert.ToInt32(tboxGotoPage.Text.ToString());
        }
        catch (Exception error)
        {
            AlertMessage("只能输入数字!");
            return;
        }
        if (intPageIndex < 1||intPageIndex>intPageCount)
        {
            AlertMessage("只能输入大于等于1并且小于等于"+intPageCount+"的数字!");
            return;
        }
        intCurrentPage = intPageIndex;
        BindMainData();
    }
    public void Pager_Click(object sender, EventArgs e)
    {
        string strArg = ((LinkButton)sender).CommandName.ToString();
        switch(strArg)
        {
            case "first":
                intPageIndex = 1;
                break;
            case "prev":
                if (intCurrentPage != 1)
                { intCurrentPage -= 1; };
                break;
            case "next":
                if (intCurrentPage < intPageCount)
                { intCurrentPage += 1; }
                break;
            default :
                intCurrentPage = intPageCount;
                break;
        }
        if (intCurrentPage == 1)
        {
            linkBtnFistPage.Enabled = false;
            linkBtnPrevPage.Enabled = false;
        }
        else
        {
            linkBtnFistPage.Enabled = true;
            linkBtnPrevPage.Enabled = true;
        }
        if (intCurrentPage == intPageCount)
        {
            linkBtnNextPage.Enabled = false;
            linkBtnLastPage.Enabled = false;
        }
        else
        {
            linkBtnNextPage.Enabled = true;
            linkBtnLastPage.Enabled = true;
        }
        BindMainData();
    }
    #endregion

    #region  方法
    /// <summary>
    /// 得到总共有多少记录
    /// </summary>
    /// <returns></returns>
    private int getSumCount()
    {
        int sumCount = 0;
        DataTable dtTest = new DataTable();
        StringBuilder strCmdText = new StringBuilder();
        strCmdText.Append("select count(UserID) from Users ");
        dtTest = Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataset(GetSqlConnection(), CommandType.Text, strCmdText.ToString()).Tables[0];
        sumCount = Convert.ToInt32(dtTest.Rows[0][0].ToString());
        if (sumCount <= intPageSize)
        {
            linkBtnFistPage.Enabled = false;
            linkBtnPrevPage.Enabled = false;
            linkBtnNextPage.Enabled = false;
            linkBtnLastPage.Enabled = false;
        }
        else
        {
            linkBtnFistPage.Enabled = true;
            linkBtnPrevPage.Enabled = true;
            linkBtnNextPage.Enabled = true;
            linkBtnLastPage.Enabled = true;
        }
        return sumCount;
    }
    /// <summary>
    /// 计算余下的页数
    /// </summary>
    /// <returns></returns>
    private int GetOverPage()
    {
        if (intSumCount % intPageSize == 0)
        {
            return 0;
        }
        else
        {
            return 1;
        }
    }
    /// <summary>
    /// 得到数据库连接
    /// </summary>
    /// <returns></returns>
    private static SqlConnection GetSqlConnection()
    {
        SqlConnection conTest = new SqlConnection("server=192.168.0.86;database=ZR_RY;uid=sa;pwd=sa");
        return conTest;
    }
    /// <summary>
    /// 绑定主要的数据
    /// </summary>
    private void BindMainData()
    {
        labCurrentPage.Text = intCurrentPage.ToString();
        int pageSize2 = intPageSize * (intCurrentPage - 1) + 1;
        StringBuilder strCmdText = new StringBuilder();
        strCmdText.Append("select top " + intPageSize + " *  from Users where UserID>=(select max(a.UserID) from (select top " + pageSize2 +"  UserID from Users) a )");
        repeaterMain.DataSource = SqlHelper.ExecuteDataset(GetSqlConnection(), CommandType.Text, strCmdText.ToString()).Tables[0];
        repeaterMain.DataBind();
    }
    public void AlertMessage(string message)
    {
        ScriptManager.RegisterClientScriptBlock(updatePanelTest, this.GetType(),"messagebox", "alert('" + message + "')", true);
    }
    #endregion
   
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值