发现一个分页控件AspNetPager

简介:      以前在利用GridView、ListView做分页显示的时候,要么使用控件自身的分页功能,要么手动写代码实现分页功能,最近发现有这么一个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" %>

<!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>分页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
        {
            padding: 1px 6px;
            border: solid 1px #ddd;
            background: #fff;
            text-decoration: none;
        }
        .paginator .cpb
        {
            padding: 1px 6px;
            font-weight: bold;
            font-size: 13px;
            border: none;
        }
        .paginator a:hover
        {
            color: #fff;
            background: #ffa501;
            border-color: #ffa501;
            text-decoration: none;
        }
    </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;
        }

相关文章
|
6月前
|
前端开发
技术经验分享:AspNetPager分页控件使用、AspNetPager样式
技术经验分享:AspNetPager分页控件使用、AspNetPager样式
139 0
|
SQL 存储 算法
【开源】我的分页控件正式命名为QuickPager ASP.NET2.0分页控件
分页控件正式命名为 QuickPager ASP.NET2.0分页控件 。 版本号:2.0.0.1 Framework:.net2.0 分页方式:PostBack 、URL (暂时没有实现URL的分页方式) webform  (b/s) 支持多种数据库,分页算法,提取数据的方式都可以替换。
1396 0
|
SQL
【开源】QuickPager ASP.NET2.0分页控件V2.0.0.1——分页控件的源码 (二)
namespace JYK.Controls.PageManage{    /**////     /// 生成分页控件需要的SQL语句    ///     public class PageSQL    {        /**////         /// 分页控件的实例        /...
1047 0
|
SQL Web App开发 算法
QuickPager asp.net 分页控件、表单控件等自定义控件下载 和介绍 【2009.09.07更新】
  最新下载地址: 自然框架的源代码、Demo、数据库、配置信息管理程序下载(2010.01.25更新)     QuickControl web控件集包含的控件 QuickControl web控件集——基本控件: 控件名称 说明 详细介绍 MyTextBox ...
1117 0
|
算法
QuickPager分页控件,最简单的设置代码
代码 ///     /// postback 的最简单的分页设置    ///     public partial class PostSimpleness : BaseWebPage    {        #region 初始化        protected override void OnInit(EventArgs e)        {            base.OnInit(e);            //数据访问函数库的实例,使用基类里定义的。
832 0
|
SQL 算法 Go
【开源】QuickPager ASP.NET2.0分页控件V2.0.0.1——分页控件的源码(一) 主体
namespace JYK.Controls{    /**////     /// 分页控件    /// PageGetData.cs 负责提取数据    /// PageSQL.cs 负责生成SQl语句    /// PageUI.
958 0
|
算法
分页解决方案 之 QuickPager的使用方法(在UserControl里面使用分页控件的方法)
        因为我一直没有在UserControl里面使用过QuickPager分页控件,我都是直接在.aspx里面使用,所以这个bug一直没有发现。后来告诉我他把分页控件放在了UserControl里面无法翻页的情况,检查之后才发现分页的事件没有传递到UserControl里面的分页控件里面,就是说分页控件没有得到分页事件。
926 0
|
前端开发 JavaScript 索引
【开源】QuickPager ASP.NET2.0分页控件V2.0.0.7 增加了一个js函数的分页方式。
     昨天在csdn上看到一个人提出来了一种分页的需求,大致是分页控件只负责绘制总页数、上一页、下一页等信息,然后在用户翻页的时候可以触发一个js函数,然后自己实现这个js函数。并不需要提交表单,他想用ajax的方式来获取数据,但是又不想使用微软的ajax。
900 0
|
索引 .NET 开发框架