Repeater结合linkbutton实现分页

来源:互联网 发布:爱国者hd816软件下载 编辑:程序博客网 时间:2024/06/06 00:32

 

//前台

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <style type="text/css">
   
        #tbList
        {
            border-top: 1px solid #0088F7;
            border-left: 1px solid #0088F7;
            width: 550px;
        }
        #tbList td, th
        {
            border-bottom: 1px solid #0088F7;
            border-right: 1px solid #0088F7;
            font-size: 16px;
        }
   
    </style>

 


</head>
<body>
    <form id="form1" runat="server">
    <div>
   
    <asp:Repeater ID="repDepartment" runat="server">
                        <HeaderTemplate>
                            <table id="tbList">
                                <tr>
                                    <td>
                                        <center>
                                            是否选中
                                        </center>
                                    </td>
                                    <td>
                                        <center>
                                            部门编号
                                        </center>
                                    </td>
                                    <td>
                                        <center>
                                            部门名称
                                        </center>
                                    </td>
                                </tr>
                        </HeaderTemplate>
                        <ItemTemplate>
                            <tr>
                                <td id="testID">
                                    <center>
                                        <input id="ckDepartment" name="ckDepartment" type="checkbox"
                                            value='<%# Eval("ID")%>' test='<%# Eval("DepartmentName")%>' onclick="alert(this.test)" />
                                    </center>
                                </td>
                                <td>
                                    <center>
                                        <label id="labID">
                                            <%# Eval("ID")%>
                                        </label>
                                    </center>
                                </td>
                                <td>
                                    <center>
                                        <label id="labName">
                                            <%# Eval("DepartmentName")%>
                                        </label>
                                    </center>
                                </td>
                            </tr>
                        </ItemTemplate>
                        <FooterTemplate>
                            </table>
                            <div style="float: right; position: absolute;">
                            </div>
                        </FooterTemplate>
                    </asp:Repeater>

                     <div>
                        <asp:HyperLink ID="lnkFirst" runat="server">首页</asp:HyperLink>
                        <asp:HyperLink ID="lnkPrev" runat="server">上一页</asp:HyperLink>
                        <asp:HyperLink ID="lnkNext" runat="server">下一页</asp:HyperLink>
                        <asp:HyperLink ID="LnkLast" runat="server">末页</asp:HyperLink>
                        <asp:Literal ID="lblInfo" runat="server"></asp:Literal>
                    </div> 

   </div>
    </form>
</body>
</html>

 

//后台

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

namespace WebApplicationUI
{
    public partial class Repter集合Linkbutton分页 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //bindDepartment();
                 int pageSize = 5;
                 this.MyDataBind(pageSize);
                 this.PagerControlManage(pageSize);
            }
        }


    
        //数据绑定
        private void MyDataBind(int pageSize)
        {
            int currentPageIndex = Convert.ToInt32(Request["pageIndex"]);

            string conStr = @"Data Source=CPF-35B2C155B74;Initial Catalog=HCPersonSys;User ID=sa;Password=111";

            string sql = @"select top (@pageSize) * from TDepartment where Id>(Select ISNULL(MAX(Id),0) from (Select top ((@pageSize)*(@currentPageIndex)) Id from TDepartment order by Id) as Temp) order by Id";
            SqlDataAdapter adapter = new SqlDataAdapter(sql, conStr);
            adapter.SelectCommand.Parameters.Add(new SqlParameter("pageSize", pageSize));
            adapter.SelectCommand.Parameters.Add(new SqlParameter("currentPageIndex", currentPageIndex));
            DataTable dt = new DataTable();
            adapter.Fill(dt);
            this.repDepartment.DataSource = dt;
            this.repDepartment.DataBind();
        }

        private void PagerControlManage(int pageSize)
        {
            int currentPageIndex = Convert.ToInt32(Request["pageIndex"]);
            int pageCount = this.GetPageCount(pageSize);

            if (currentPageIndex != 0)
            {
                this.lnkFirst.Enabled = true;
                this.lnkFirst.NavigateUrl = Request.CurrentExecutionFilePath + "?pageIndex=0";
                this.lnkPrev.Enabled = true;
                this.lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?pageIndex=" + (currentPageIndex - 1);
            }
            else
            {
                this.lnkPrev.Enabled = false;
                this.lnkFirst.Enabled = false;
            }
            if (currentPageIndex != (pageCount - 1))
            {
                this.LnkLast.Enabled = true;
                this.LnkLast.NavigateUrl = Request.CurrentExecutionFilePath + "?pageIndex=" + (pageCount - 1);
                this.lnkNext.Enabled = true;
                this.lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?pageIndex=" + (currentPageIndex + 1);
            }
            else
            {
                this.lnkNext.Enabled = false;
                this.LnkLast.Enabled = false;
            }
            this.lblInfo.Text = "当前第" + (currentPageIndex + 1) + "页共" + pageCount + "页";
        }

        //取到所有的数据总数
        private int GetPageCount(int pageSize)
        {
            string conStr = @"Data Source=CPF-35B2C155B74;Initial Catalog=HCPersonSys;User ID=sa;Password=111";

            string sql = "select count(*) from TDepartment";
            SqlConnection conn = new SqlConnection(conStr);
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = sql;
            conn.Open();
            int recordCount = (int)cmd.ExecuteScalar();
            conn.Close();
            conn.Dispose();
            int pageCount = recordCount / pageSize;
            if (recordCount % pageSize != 0)
            {
                pageCount++;
            }
            return pageCount;
        }

 
    }
}

 

 

 

 

 

 

 

 

 

 

原创粉丝点击