对自写的Asp.Net分页控件的应用方式(异步无刷新分页)

前台代码

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <meta charset="utf-8" />
    <link href="css/table.css" rel="stylesheet" />
    <script src="js/jquery-3.2.1.js"></script>

    <script>
        $(function () {
            //网页启动加载数据
            Init();
        });

        function Init(postData) {
            //网页启动时,获取指定的数据
            $.getJSON("ProcessInfo.ashx", postData, function (data) {
                //先将原有内容清空
                $("table tbody").empty();

                //拿到当前列表
                var list = data.list;

                //循环读取列表中的数据
                for (var i = 0; i < list.length; i++) {
                    str = "<tr>";
                    //将数据填充
                    str += "<td>" + list[i].CustomerID + "</td>";
                    str += "<td>" + list[i].CustomerCompany + "</td>";
                    str += "<td>" + list[i].CustomerName + "</td>";
                    str += "<td>" + list[i].CustomerContact + "</td>";
                    str += "<td>" + list[i].CustomerAddress + "</td>";
                    str += "<td>" + list[i].CustomerCity + "</td>";
                    str += "<td>" + list[i].CustomerArea + "</td>";
                    str += "<td>" + list[i].CustomerCode + "</td>";
                    str += "<td>" + list[i].CustomerCountry + "</td>";
                    str += "<td>" + list[i].CustomerTelephone + "</td>";
                    str += "<td>" + list[i].CustomerFax + "</td>";
                    str += "</tr>";
                    //将数据追加到表格中
                    $("table tbody").append(str);
                }
                //将分页标签放到div里去
                $("#nav").append(data.nav);
                //给分页标签绑定点击事件
                $("#nav a").click(function () {
                    //清空原有分页标签
                    $("#nav").empty();
                    //获取分布标签a链接的href属性值
                    var href = $(this).attr("href");
                    //获取分布标签a链接?后面的数据,得到pageIndex和pageSize的键值对集合
                    var queryString = href.substr(href.lastIndexOf("?") + 1);
                    //将数据传递到方法中继续加载
                    Init(queryString);
                    return false;
                })
            });
        }
    </script>

    <style>
        #nav{
            margin-top:20px;
        }
        #nav a,#nav span{
            border:1px solid #ccc;
            padding:10px;
        }
    </style>
</head>
<body>
    <div class="content">

        <!-- 数据显示区域  开始-->
        <table>
            <thead>
                <tr>
                    <th>客户ID</th>
                    <th>公司名称</th>
                    <th>联系人姓名</th>
                    <th>联系人职务</th>
                    <th>地址</th>
                    <th>城市</th>
                    <th>地区</th>
                    <th>邮政编码</th>
                    <th>国家</th>
                    <th>电话</th>
                    <th>传真</th>
                </tr>
            </thead>
            <tbody>

            </tbody>
        </table>
        <!-- 数据显示区域  结束-->

        <!-- 分页标签显示  开始-->
        <div id="nav"></div>
        <!-- 分页标签显示  结束-->
    </div>
</body>
</html>

后台代码,请求ashx一般处理程序

 public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            //获取前台传递的当前页码
            int pageIndex = Convert.ToInt32(context.Request["pageIndex"]??"1");

            //获取前台传递的数量
            int pageSize = Convert.ToInt32(context.Request["pageSize"] ?? "10");

            //实例化bll层业务对象
            BLL.CustormerBll bll = new BLL.CustormerBll();

            //得到当前应该显示的数据量
            List<Model.CustomerMl> list = bll.GetPage(pageSize, pageIndex);

            //得到当前整个表的条数
            int count = bll.GetCount();

            //调用方法获取分页标签
           string nav= Common.PageForRao.Page(pageIndex, count, pageSize, "");

            //将数据和分页标签放在匿名类中
            var objSon = new { list = list, nav = nav };

            //实例化一个序列化对象
            System.Web.Script.Serialization.JavaScriptSerializer ser = new System.Web.Script.Serialization.JavaScriptSerializer();

            //将装载了前台所需要的数据进行序列化
            string data = ser.Serialize(objSon);

            //将序列化后的数据传递给前台
            context.Response.Write(data);
        }

运行后效果

点击下一页时,以及1,2,3,4,5时的效果如下图

当点击到第6页,以及7,8,9时的效果图

当点 击到第10页(最末页时)

原文地址:https://www.cnblogs.com/rbzz/p/8443083.html

时间: 2024-10-09 05:28:11

对自写的Asp.Net分页控件的应用方式(异步无刷新分页)的相关文章

关于 异步无刷新分页的问题

今天做了  异步无刷新分页 ,之前自己的想法是 异步加载每一页的内容,传入pageSize(页面多大显示条数)和pageIndex(页码),然后查询出数据,放在dataset中,在利用json常用类库,把dataset转化为json对象,传回页面,同是把写好的分页代码也传回页面,当实施的时候遇到了困难,c#一般处理程序无法同时传两个参数到页面. 后来发现了一种方法, System.Web.Script.Serialization.JavaScriptSerializer,序列化,引用了--命名空

SUI分页组件和avalon搞定ajax无刷新分页

<div ms-controller="main"> <h2 class="pagination-centered">{{ title }}</h2> <form method="get" action="" class="sui-form" style="margin-bottom:5px;"> 重量:<input class=&q

ajax分页2:jquery.pagination +JSON 动态无刷新分页

aspx 页面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="SqlPage.aspx.cs" Inherits="SqlPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xh

WPF 实现 DataGrid/ListView 分页控件

在WPF中,通常会选用DataGrid/ListView进行数据展示,如果数据量不多,可以直接一个页面显示出来.如果数据量很大,2000条数据,一次性显示在一个页面中,不仅消耗资源,而且用户体验也很糟糕.这篇博客将介绍如何创建一个分页控件. 为了简单起见,这个分页控件目前只有 首页/上一页/下一页/末页/总页数/第几页 等功能.实现思路,首页/上一页/下一页/末页 这四个通过路由事件来实现,在使用时可以使用命令进行绑定,或者直接使用均可.总页数和第几页通过依赖属性来实现,使用时将页数进行绑定显示

在DevExpress程序中使用Winform分页控件直接录入数据并保存

一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数据,这种对于字段比较少,而且内容相对比较简单的情况下,效率是比较高的一种输入方式.本篇随笔主要介绍在DevExpress程序中使用GridView直接录入数据并保存的实现,以及使用Winform分页控件来进行数据直接录入的实现操作. 1.在GridView上展示数据 在GridView上展示数据,只

企业级控件库之大数据量分页控件(转)

在上篇:我介绍了原创企业级控件库之组合查询控件,这篇我将给大家介绍:企业级控件库之大数据量分页控件.  摘要  说到分页,大家采用的方法各有千秋,分页在一个中大型软件项目中对数据的快速呈现起到很关键的作用,试想一个数据量上几十万或者几百万的数据表,要是没有分页功能会是一个什么样的效果.总的说来,大家采用的分页方法大同小异,但到底那种方法才是最佳的呢,各有各的看法,让数据说话最有效.今天我给大家分享一个WinForm下大数据量分页控件(当然分页思想也可用于WebForm).虽然不能说是最佳的,但在

WPF 实现 DataGrid/ListView 分页控件(转)

在WPF中,通常会选用DataGrid/ListView进行数据展示,如果数据量不多,可以直接一个页面显示出来.如果数据量很大,2000条数据,一次性显示在一个页面中,不仅消耗资源,而且用户体验也很糟糕.这篇博客将介绍如何创建一个分页控件. 为了简单起见,这个分页控件目前只有 首页/上一页/下一页/末页/总页数/第几页 等功能.实现思路,首页/上一页/下一页/末页 这四个通过路由事件来实现,在使用时可以使用命令进行绑定,或者直接使用均可.总页数和第几页通过依赖属性来实现,使用时将页数进行绑定显示

asp.net 分页-自己写分页控件

去年就发表过asp.net 分页-利用后台直接生成html分页 ,那种方法只是单纯的实现了分页,基本不能使用,那时就想写个自己的分页控件,无奈能力有限.最近有点时间了,就自己做出了这个分页控件.我承认,这个控件参考了别人的,但是其实里面的原理都相同,差异只是展现方式而已. 去年就在做一个自己的后台系统,刚开始用的asp.net,做了一部分就没有做了,因为缺少权限控制类别.后面转为用asp.net mvc4做,也只是做了一部分,觉得不太方便,也许是我不太会用.再用ajax+ashx做了一部分,虽然

asp.net分页控件使用详解【附实例下载】

本篇文章主要对asp.net创建事务的方法进行实例介绍,具有很好的参考价值,需要的朋友一起来看下吧 一.说明 AspNetPager.dll这个分页控件主要用于asp.net webform网站,现将整理代码如下 二.代码 1.首先在测试页面Default.aspx页面添加引用 <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer"