天天看點

發現一個分頁控件AspNetPager

     以前在利用GridView、ListView做分頁顯示的時候,要麼使用控件自身的分頁功能,要麼手動寫代碼實作分頁功能,最近發現有這麼一個AspNetpager的分頁控件, 還挺不錯。

      (1)、先下載下傳aspnetpager.dll這個檔案,在VS2005建立Web項目中添加該引用,并将其添加到工具欄中,這樣可以輕易拖放。

      (2)、在cs檔案中添加引用:using Wuqi.Webdiyer;

以下是代碼:

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

<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>

<head runat="server">

    <title>分頁ASPNETPAGER控件使用</title>

    <style type="text/css">

        /*拍拍網風格*/.paginator

        {

            font: 11px Arial, Helvetica, sans-serif;

            padding: 10px 20px 10px 0;

            margin: 0px;

        }

        .paginator a

            padding: 1px 6px;

            border: solid 1px #ddd;

            background: #fff;

            text-decoration: none;

            margin-right: 2px;

        .paginator a:visited

        .paginator .cpb

            font-weight: bold;

            font-size: 13px;

            border: none;

        .paginator a:hover

            color: #fff;

            background: #ffa501;

            border-color: #ffa501;

    </style>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <asp:GridView ID="GridView1" runat="server" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None">

            <FooterStyle BackColor="Tan" />

            <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />

            <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />

            <HeaderStyle BackColor="Tan" Font-Bold="True" />

            <AlternatingRowStyle BackColor="PaleGoldenrod" />

        </asp:GridView>

    </div>

        <webdiyer:aspnetpager CssClass="paginator"  id="AspNetPager1" runat="server" OnPageChanged="ChangePage" AlwaysShow="True" FirstPageText="首頁" Font-Size="Smaller" LastPageText="末頁" NextPageText="下一頁" NumericButtonCount="5" PrevPageText="上一頁" ShowInputBox="Always"></webdiyer:aspnetpager>

    </form>

</body>

</html>

----------------------------------------------------------------------------------------------------

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 System.Data.SqlClient;

using Wuqi.Webdiyer;

public partial class SpiltPage : System.Web.UI.Page

{

    string conString = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

            using (SqlConnection con = new SqlConnection(conString))

            {

                con.Open();

                string strSQL = "select count(*) from BMSK_GB";

                using (SqlCommand cmd = new SqlCommand(strSQL, con))

                {

                    AspNetPager1.RecordCount = (int)cmd.ExecuteScalar();

                }

            }

            BindData();

        }  

    }

    //資料綁定

    public void BindData()

        using (SqlConnection con = new SqlConnection(conString))

            con.Open();

            string strSQL = "select SKBM as 水庫編碼,SKMC as 水庫名稱,SZS as 所在市,SZX as 所在縣,SFWX as 是否危險 from BMSK_GB";

            SqlDataAdapter da = new SqlDataAdapter(strSQL,con);

            DataSet ds = new DataSet();

            da.Fill(ds,AspNetPager1.PageSize*(AspNetPager1.CurrentPageIndex-1),AspNetPager1.PageSize,"tab");

            this.GridView1.DataSource = ds.Tables["tab"];

            this.GridView1.DataBind();

    //翻頁事件

    protected void ChangePage(object src, PageChangedEventArgs e)

        AspNetPager1.CurrentPageIndex = e.NewPageIndex;

        BindData();

}

後續補充說明:

對于用存儲過程,可以寫一個方法傳回一個可用的DataSet對象提供使用,如下:

public static DataSet GetAllUserPage(string table, string fields, string orderField, string sqlWhere,int pageSize, int pageIndex, out int totalPage, out int totalRecord)

            DataSet ds = null;

            string spName = "[dbo].[sp_super_page]";

            SqlParameter[] parameters = new SqlParameter[]

    {

     new SqlParameter("@TableName",SqlDbType.VarChar, 5000),

     new SqlParameter("@Fields",SqlDbType.VarChar, 5000),

     new SqlParameter("@OrderField",SqlDbType.VarChar, 5000),

     new SqlParameter("@sqlWhere",SqlDbType.VarChar, 5000),

     new SqlParameter("@pageSize",SqlDbType.Int),

     new SqlParameter("@pageIndex",SqlDbType.Int),

     new SqlParameter("@TotalPage",SqlDbType.Int),

     new SqlParameter("@totalRecord",SqlDbType.Int)

    };

            parameters[0].Value = table;

            parameters[1].Value = fields;

            parameters[2].Value = orderField;

            parameters[3].Value = sqlWhere;

            parameters[4].Value = pageSize;

            parameters[5].Value = pageIndex;

            parameters[6].Direction = ParameterDirection.Output;

            parameters[7].Direction = ParameterDirection.ReturnValue;

            ds = SQLHelper.ExecuteDataset(SQLHelper.connectionStr, CommandType.StoredProcedure, spName, parameters);

            totalPage = Convert.ToInt32(parameters[6].Value);

            totalRecord = Convert.ToInt32(parameters[7].Value);

            return ds;

繼續閱讀