JPagination分页插件的使用(ASP.NET中使用)

前台代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="JqPaginator.Index" %>

<!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>JPagination分页插件demo</title>
    <link href="CSS/bootstrap.min.css" rel="stylesheet" type="text/css" />
    <link href="CSS/style.css" rel="stylesheet" />/*这是插件的的样式*/
    <script src="Scripts/jquery-1.9.1.min.js" type="text/javascript"></script>/*引用jquery脚本*/
    <script src="Scripts/jquery.paginate.js" type="text/javascript"></script>/*引用插件*/
    <script src="Scripts/bootstrap.min.js" type="text/javascript"></script>
</head>
<body>
    <h1>
        JPagination分页插件demo</h1>
    <table id="TB" class="table table-bordered table-striped table-hover">
        <tr id="TR">
            <th>
                行号
            </th>
            <th>
                SOP名字
            </th>
            <th>
                操作人
            </th>
            <th>
                操作时间
            </th>
        </tr>
    </table>
    <div id="paginator">
    </div>
    <input type="hidden" name="name" value="" id="input_getCount" />
    <script type="text/javascript">
        $(function () {
            getData(1); //初次运行,需要把第一页的数据放到页面显示,第一次加载完脚本之后,不会自动执行插件的onChange方法,所以需要认为的加载一次数据
            $("#paginator").paginate({
                count: getCount(),//getCount方法可以获取到数据的总页数
                start: 1,
                display: 7,
                border: true,
                border_color: '#fff',
                text_color: '#fff',
                background_color: 'black',
                border_hover_color: '#ccc',
                text_hover_color: '#000',
                background_hover_color: '#fff',
                images: false,
                mouse: 'press',
                onChange: function (page) {
                    getData(page);
                }
            });


        });
        function getCount() {
            var count = "";
            $.ajax({
                async: false,
                type: "post",
                url: "Handler1.ashx?action=getCount",
                data: {},
                success: function (result) {                    
                    count = result;
                }
            });
            return count;
        }
        function getData(page_index) {
            var new_content = "";
            $.ajax({
                type: "post",
                url: "Handler1.ashx?action=getData",
                data: { page: page_index },
                success: function (result) {
                    var content = eval(result);
                    for (var i = 0; i < content.length; i++) {
                        if (new_content.length == 0) {
                            new_content = "<tr><td>" + content[i]["NUM"] + "</td><td>" + content[i]["SOP"] + "</td><td>" + content[i]["NAME"] + "</td><td>" + content[i]["DATE"] + "</td></tr>";
                        } else {
                            new_content = new_content + "<tr><td>" + content[i]["NUM"] + "</td><td>" + content[i]["SOP"] + "</td><td>" + content[i]["NAME"] + "</td><td>" + content[i]["DATE"] + "</td></tr>";
                        }
                    }
                    $("#TR").empty().append(new_content); //装载对应分页的内容
                }
            });
        }
    </script>
</body>
</html>

在 jquery.paginate.js 这个文件中有一些默认的设定,比如说,每页显示的数量、页码的数量、首页、尾页按钮显示的文字……都可以在里面进行默认设置的更改

通过一般处理程序,请求后台数据,getCount会返回数据的总页数,getData会返回详细的数据(以JSON字符串的形式返回)

下面一段是后台代码,可以忽略不看。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Text;

namespace JqPaginator
{
    /// <summary>
    /// Handler1 的摘要说明
    /// </summary>
    public class Handler1 : IHttpHandler
    {
        private static readonly string connStr = "Data Source=VICHIN-PC;Initial Catalog=MyTest;Integrated Security=True";
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string StrAction = context.Request.QueryString["action"];
            switch (StrAction)
            {
                case "getCount":
                    getCount(context);
                    break;
                case "getData":
                    getData(context);
                    break;
            }
            context.Response.End();
        }
        private void getData(HttpContext context)
        {
            string page_Str = context.Request["page"];
            int page = Convert.ToInt32(page_Str);
            int firstNum = page * 10 - 9;
            int secondNum = page * 10;
            string getData_Str = @"select A.NUM,A.SOP,A.NAME,A.[DATE] from (select ROW_NUMBER() OVER(order by NO asc) as NUM,SOP,NAME,[DATE] from dbo.SMTSOP_DELETE_RECORD) as A where A.NUM between " + firstNum + " and " + secondNum + "";
            DataTable getData_DT = Query(getData_Str);
            if (getData_DT.Rows.Count > 0)
            {
                context.Response.Write(DataTable2Json(getData_DT));
            }
        }
        private void getCount(HttpContext context)
        {
            string getCount_Str = "select COUNT(NO) as NumCount from dbo.SMTSOP_DELETE_RECORD";
            DataTable Count_DT = Query(getCount_Str);
            if (Count_DT.Rows.Count > 0)
            {
                int count = Convert.ToInt32(Count_DT.Rows[0][0].ToString());
                int j = count % 10;
                int k = count / 10;
                if (j != 0)
                    context.Response.Write((k + 1).ToString());
                else
                {
                    context.Response.Write(k.ToString());
                }
            }
        }
        public static string DataTable2Json(DataTable dt)
        {
            StringBuilder SB = new StringBuilder();
            SB.Append("[");
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                SB.Append("{");
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    SB.Append("\"");
                    SB.Append(dt.Columns[j].ColumnName);
                    SB.Append("\":\"");
                    SB.Append(dt.Rows[i][j].ToString());
                    SB.Append("\",");
                }
                SB.Remove(SB.Length - 1, 1);
                SB.Append("},");
            }
            if (dt.Rows.Count > 0)
            {
                SB.Remove(SB.Length - 1, 1);
            }
            SB.Append("]");
            return SB.ToString();
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
        public static DataTable Query(string sqlStr) //创建一个表集合,名字为GetData
        {
            SqlConnection conn = new SqlConnection(connStr);
            conn.Open();
            try
            {
                SqlCommand comm = new SqlCommand(sqlStr, conn);
                SqlDataAdapter da = new SqlDataAdapter(comm);
                DataTable dt = new DataTable();
                da.Fill(dt);
                return dt;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }
        }
    }
}
View Code

这个是效果图

转载于:https://www.cnblogs.com/vichin/p/6951191.html

再次声明 千万不要把XiaoQi.dll 跟 XiaoQi.XML 给分开 2013年3月8号 修复了很多bug 调整了源代码 添加的时候 一定要引用 不要直接复制DLL 不然没有方法注释 最强大分分页控件 华丽的分页控件 实用的分页控件 有最新最实用的方法 联系小柒 下面是 AspNetHelp 类 方法概述 ///Show()弹出对话框 ///重载Show()弹出对话框 并且跳转界面 ///ShowJavascript()执行javascript脚本 ///FileDelete()给出文件虚拟路径删除文件 ///FileSize()获取上传文件大小 ///FileUpload()文件上传 路径upload/ 自动重命名 ///FileDownload()文件下载 调用方法如 FileDownload(Response,Server,文件虚拟路径) ///FileTxtWrite()写入TXT文本 给出要创建Txt 文本的地址 ///FileTxtReader()读取TXT文本 Txt 文本的地址 返回一个数组 每一行为数组里的一个元素 ///StringEncrypt() DES字符串加密文不可以加密 ///StringDecrypt()DES解密字符串 ///StringMD5Encrypt()MD5加密 ///StringPYChar()单个汉字返回该汉字首字母 ///StringRandom()生成指定位数的随机数 ///StringEdit()给出指定字符串长度多少位后用点显示... ///StringReplaceSpace()替换文本的空格和换行 ///StringColor()改变字的颜色 ///StringNull()当对象是空的时候 转为空字符串 ///StringConvert()汉字转拼音 ///StringNumber()数字转换文 ///StringRep()url参数为文时候转换加密 ///StringRes()url参数为文时候转换解密 ///ShowWindowForm()弹出新窗口页面 ///ShowFormModalDialog()弹出模式窗口页面 ///SqlGetMaxID()给出表名列名 int类型 查询出最大列值+1 适用于主键 ///SqlGetSingle()执行一条计算查询结果语句,返回查询结果(object)。 ///SqlExecute()执行SQL语句,返回影响的记录数 ///SqlRunStr()执行SQL语句,不返回影响的记录数 ///SqlRunReturn()执行SQL语句,并返回第一行第一列结果 ///SqlGetReader()获得SqlDataReader对象 使用完须关闭DataReader,关闭数据库连接 ///SqlGetTable()执行查询语句,返回DataTable ///SqlDataSet()执行查询语句,返回DataSet ///SqlIsCunZai()执行Sql 语句查询是否有数据 如果没有返回假 ///SqlRunProc()执行存储过程 ///DataBindDropDownListDefault()DropDownList控件绑定 带默认选择项 如"请选择" ///DataBindDropDownList()DropDownList控件绑定 不带默认选择项 ///DataBindRadioButtonList()RadioButtonList控件绑定 默认第一个选 ///DataBindCheckBoxList()CheckBoxList控件绑定 ///ElseIpAddr()调用此方法 返回当前登录的省市IP地址 ///ElseDataTimeIng()返回本地电脑的当前日期的年月日时分秒 动态的显示 JS实现 ///ElsePageLoad()页面加载数据加载完成呈现页面 ///ElseCkeck()返回页面验证码图片 使用方法:单独创建一个页面 在首次加载事件里写 AspNetHelp.ElseCkeck(Page); 在使用验证码的页面直接写 img src="这个页面的路径" 注意验证码保存在 Session["CheckCode"] 这里是区分大小写的 ///ElseColorRGB()由于QQ截图的取色会出现RGB的颜色 这里能转换成16进制 分页控件详情请看内置文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值