简单的jQuery分页插件封装怎么进行?

问题描述

在学习jQuery插件封装,依葫芦画瓢封装了一个简单的表格和分页,页面能初始化生成表格和分页,但生成后怎么能让分页插件执行分页和表格刷新工作就不晓得怎么继续了,希望熟悉jQuery插件开发的人能帮忙补齐一下。预期的用法是,给插件传入一个后台的请求路径“"http://127.0.0.1:8080/account/findListForPage"”,通过路径返回一个分页json对象(当前页、总页、页面表格数据),通过解析json生成表格和分页部分:function reloadTable(code){$("#acTableGrid").grid({ //content:$(".widget-body"), type: "POST",url:"${ctx}/account/findListForPage", column:[{"id":"编号","state":"状态","type":"类型","phone":"电话"}], page:true, param:{"pageCode":code}, })}(function($) { // plugin definitionvar GridTable = function(ele, options) {this.$element = ele,this.defaults = {page : false,type : "GET",url : undefined,param : undefined,pageData : undefined},this.opts = $.extend({}, this.defaults, options)if(this.opts.url!=undefined&&this.opts.url!=""){var dataObject = $.ajax({async: false,type : this.opts.type,url : this.opts.url,data : this.opts.param,success : function(data) {return data}});}this.opts.pageData = dataObject.responseJSON;}GridTable.prototype = {buildBody : function() {this.$element.empty();this.$element.addClass("table table-striped table-bordered table-hover");if (this.opts.column.length > 0) {var thead = $("<thead>");var tr = $("<tr>").appendTo(thead);$.each(this.opts.column[0], function(name, value) {tr.append("<th>" + value + "</th>");});this.$element.append(thead)}var record = this.opts.pageData.data;if (record != undefined && record.length > 0) {var tbody = $("<tbody>");for (i = 0; i < record.length; i++) {columnData = record[i];var tr = $("<tr>");$.each(this.opts.column[0], function(name, value) {tr.append("<td>" + columnData[name] + "</td>");});tbody.append(tr);}returnthis.$element.append(tbody)}},buildPagin: function(){var pageData = this.opts.pageData;if (this.opts.page) {var page = '<div class="dt-row dt-bottom-row">';page = page+ '<input type="hidden" id="url" name="url" value="'+ this.opts.url + '">';page = page+ '<input type="hidden" id="pageSize" name="pageSize" value="'+ pageData.pageSize + '">';page = page+ '<input type="hidden" id="pageCode" name="pageCode" value="'+ pageData.pageCode + '">';page = page+ '<input type="hidden" id="totalPageNum" name="totalPageNum" value="'+ pageData.totalPageNum + '">';page = page + '<div class="row">';page = page + '<div class="col-sm-6">';page = page+ '<div class="dataTables_info" id="dt_basic_info">第'+ pageData.pageCode + '/' + pageData.totalPageNum+ '页 共' + pageData.totalRecords + '条记录</div>';page = page + '</div>';page = page + '<div class="col-sm-6 text-right">';page = page+ '<div class="dataTables_paginate paging_bootstrap_full">';page = page + '<ul class="pagination">';page = page+ '<li class="first"><a href="javascript:void(0)">首页</a></li>';page = page+ '<li class="prev"><a href="javascript:void(0)">上一页</a></li>';page = page+ '<li class="next"><a href="javascript:void(0)">下一页</a></li>';page = page+ '<li class="last"><a href="javascript:void(0)">末尾页</a></li>';page = page + '</ul>';page = page + ' </div>';page = page + '</div>';page = page + '</div>';page = page + ' </div>';this.$element.after(page);},}$.fn.grid = function(options) {var grid = new GridTable(this, options);grid.buildBody();grid.buildPagin();return grid;};})(jQuery);生成的HTML结构如下://表格数据部分<table id="acTableGrid" class="table table-striped table-bordered table-hover"><thead><tr><th>编号</th><th>状态</th><th>类型</th><th>电话</th><th>账号</th><th>注册时间</th><th>Email</th></tr></thead><tbody><tr><td>464690392101687300</td><td>null</td><td>0</td><td>null</td><td>15828245173</td><td>1399625797000</td><td>null</td></tr><tr><td>465404813799198700</td><td>null</td><td>0</td><td>null</td><td>313057544@qq.com</td><td>1399796129000</td><td>null</td></tr><tr><td>465442761785610240</td><td>null</td><td>0</td><td>null</td><td>15828245273</td><td>1399805176000</td><td>null</td></tr></tbody></table>//分页部分<div class="dt-row dt-bottom-row"><input type="hidden" id="url" name="url" value="/kmp/account/findListForPage"><input type="hidden" id="pageSize" name="pageSize" value="3"><input type="hidden" id="pageCode" name="pageCode" value="1"><input type="hidden" id="totalPageNum" name="totalPageNum" value="3"><div class="row"><div class="col-sm-6"><div class="dataTables_info" id="dt_basic_info">第1/3页 共7条记录</div></div><div class="col-sm-6 text-right"><div class="dataTables_paginate paging_bootstrap_full"><ul class="pagination"><li class="first"><a href="javascript:void(0)">首页</a></li><li class="prev"><a href="javascript:void(0)">上一页</a></li><li class="next"><a href="javascript:void(0)">下一页</a></li><li class="last"><a href="javascript:void(0)">末尾页</a></li></ul> </div></div></div> </div>

解决方案

lihao312 说的我有点不认同 不需要去跳新页面 1:分页控件需要向后台发送请求,发送的参数包括当前页,每页显示数量,查询条件;并且获取数据加载到当前页面; 2:进行修改删除操作的时候能记住当前页; 3:查询后翻页的时候可以可以记住当前查询的条件 先在页面中划出一块 第点到第几页就通过ajax局部刷新取出的数据扔到下面的value中<s:iterator value="list" var="delist"><option value="<s:property value="#delist.id" />"><s:property value="#delist.name" /></option><img src="<s:property value="#delist.picture_path" />" /></s:iterator>本来准备贴我的一个以前做的例子 看了下太挫啦 不丢人现眼啦 下面的你参考下http://www.jb51.net/article/24920.htm
解决方案二:
当你点击第一页的时候, 页面跳转走了, 当跳转新页面时, 当前页面的第几页链接高亮显示, 依次类推了

时间: 2024-11-02 17:07:17

简单的jQuery分页插件封装怎么进行?的相关文章

利用JQuery写一个简单的异步分页插件_jquery

写了一个Jquery异步分页插件,拿出来分享一下,有不完善之处请指教. 以用户分页为例,先看一下效果,首先是第一页: 下一页或者点击第二页后: 点击尾页后: 效果还可以吧?来看看具体怎么用,首先后台要有一个Page模型: Page.java: public class Page { /** * 当前页号 */ private int currPageNum = 1; /** * 总记录数 */ private int totalRowSize = 0; /** * 每页记录数 */ privat

最实用的jQuery分页插件_jquery

在做商城和订单管理的时候,常常会用到分页功能,所以我封装了一个jQuery的分页插件,该插件主要实现上下翻页,输入数字跳转等功能. 具体实现如下: 输入参数需要当前页码pageNo,总页码totalPage,回调函数callback. 主要的实现有两个函数,一个是根据当前页和总页数生成相应的html的代码,一个是事件绑定及回调函数的执行. creatHtml函数: creatHtml:function(){ var me=this; var content=""; //当前页码 var

Jquery 分页插件之Jquery Pagination_jquery

实用jQuery分页特效插件jquery.pagination.js,基于jQuery实现,可根据pageselectCallback函数callback调用通过ajax调用动态数据,目前的方法是生成JSON数据到JS文件,调用的数据是JSON格式数据,缺点是数据是一次性读出来的,效率会差些,插件支持众多参数的自定义配置功能,还是很不错的,大家可以根据自己的想法进行改进. 有同学问道jquery的简单分页插件,原来有同事写过一个简单[Javascript 使用回调函数的自定义分页插件--自带样式

分享一个自己动手写的jQuery分页插件_jquery

工作需要一个JS分页插件,心想自己动手写一个吧,一来上网找一个不清楚代码结构的,出了问题难以解决,而且网上的插件所包含的功能太多,有些根本用不到,就没必要加载那段JS,二来想起没写过jQuery插件,就当练一下手了,好了,先看结果: http://demo.jb51.net/js/2014/EasyPage/  简单说一下这个插件所要实现的功能  后台将查询出来的内容全部显示到页面上,这个插件要控制这些内容,使其一页一页显示.有上一页,下一页,首页,尾页的功能.在第一页时,上一页,首页要隐藏.在

20 个 jQuery 分页插件和教程,附带实例

在这篇文章中我们将向你介绍 20 个最棒的 jQuery 分页插件以及教程,并提供在线演示. 1.客户端的jQuery 分页插件jPages jPages 是一个客户端的分页插件,但提供很多特性例如自动翻页.键盘和滚动浏览,延迟显示以及完全可定制的导航面板. Read More Demo 2. jQuery ScrollPagination jQuery ScrollPagination plugin 是一个 jQuery 实现的支持无限滚动加载数据的插件. Read More Demo 3.

jQuery分页插件jBootstrapPage

一个Bootstrap风格的分页控件,对于喜欢Bootstrap简洁美观和扁平化的同学可以关注jBootstrapPage, 目前jBootstrapPage最新版为V0.1,后续还有更多功能需要完善. demo演示地址: http://www.it175.cn/demo/jBootstrapPage/ 代码示例: html代码 <html> <head>     <link href="jBootsrapPage.css" rel="style

jquery分页插件jquery.pagination.js实现无刷新分页_jquery

本文实例为大家分享了jquery分页插件实现无刷新分页的相关代码,供大家参考,具体内容如下 1.使用插件为 jquery.pagination.js ,如果没有这个js文件的话,我可以给发个. 首先引用 jquery.pagination.js (分页js),跟pagination.css(分页样式css). 点击获取查看这两个文件 2.页面js代码为 <script type="text/javascript"> var pageIndex = 0; //页面索引初始值

jquery分页插件jquery.pagination.js使用方法解析_jquery

这一款js分页使用起来很爽,自己经常用,做项目时总是要翻以前的项目看,不方便,这里就把他写出来方便自己以后粘帖,也希望能分享给大家.参数说明 插件代码js代码: /** * This jQuery plugin displays pagination links inside the selected elements. * * @author Gabriel Birke (birke *at* d-scribe *dot* de) * @version 1.1 * @param {int} m

一款Jquery 分页插件的改造方法(服务器端分页)_jquery

分页几乎是每个外部程序必不可少的东西,在webform时代很多人都用过AspNetPager这个用户控件吧,用的人之多其实就在于它的优点:传给它几个参数就可以生成像样的分页,其实这个也是绝大多数程序员(包括我)的致命缺点:样式..,我对于咱们来说用尝试用CSS把一个模块调美观好看所花的时间远远超过了实现功能所需的时间- -! 现在越来越多做web的开始采用.NET MVC框架,抛开一切服务器控件,回归正宗的B/S编程,享受灵活控制好处之余,也得花费很多功夫,很多地方都得自己去实现,例如分页这样的