博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jquery+artTemplate+layPage 封装datagrid
阅读量:7146 次
发布时间:2019-06-29

本文共 3911 字,大约阅读时间需要 13 分钟。

导言

在日常开发中经常会用到列表,相信用过easyui,Ext等很多,的确很强大,但想修改确实也不容易,我也用了几年的easyui,有时间时会想一下,自已随然没有前端的精湛技术,但可以在有这些技术的开源框架上封装一下组成自已的控件,方便又好上手,扩展容易。

我们经常用Layer弹窗控件,今天也用他家的分页控件layPage和都熟悉的腾讯的模板引擎artTemplate还有老牌Jquery封装一个小的datagrid功能简单够用就好,方便扩展用到功能再加

代码

/*  *基于Jquery 和 artTemplate 封装的列表控件 *可实现分页和无分页列表,功能单一欢迎大家补充 * Date: 2015-04-28            datagrid = $("#eTable").datagrid({                //pageIndex: 1,                //pageSize: 10,                //queryParams: $("#search").serialize(),                url: "/Layui/GetJson",                pagination: "pagination",                scriptHtml: "eTableHtml",                table: "eTableRow",                isPagination: true,                //onLoadSuccess: function (data) {                //    //alert(data);                //}            }); */(function ($) {    function init(options, obj) {        function getParam() {            var param = "pageIndex=" + opts.pageIndex + "&pageSize=" + opts.pageSize;            param = param + "&" + opts.queryParams;            return param;        }        function queryForm() {            var cells = document.getElementById(opts.table).rows.item(0).cells.length;            if (opts.isPagination) {                document.getElementById(opts.pagination).innerHTML = "";            }            var trStr = "{0}";            obj.html(trStr.replace("{0}", "数据正在加载中..."));            var url = opts.url + "?ts=" + Math.random();            $.post(url, getParam(), function (result) {                if (result.list.length == 0 || typeof (result.list.length) == "undefined") {                    obj.html(trStr.replace("{0}", "没有查询到您想要的数据"));                    return;                }                data.list = result.list;                var html = template(opts.scriptHtml, data);                obj.html(html);                if (result.totalCount > 0 && opts.isPagination) {                    totalCount = result.totalCount;                    pageInitialize(opts.pagination, opts.pageIndex, opts.pageSize, result.totalCount);                }                callbackFun();            });        }        function pageInitialize(pageID, pageIndex, pageSize, totalCount) {            laypage({                cont: pageID, //容器。值支持id名、原生dom对象,jquery对象。【如该容器为】:
pages: Math.ceil(totalCount / pageSize), //通过后台拿到的总页数 curr: pageIndex, //初始化当前页 jump: function (e, first) { //触发分页后的回调 opts.pageIndex = e.curr; if (!first) { //一定要加此判断,否则初始时会无限刷新 queryForm(); } } }); } function callbackFun() { if (opts.onLoadSuccess != null) { opts.onLoadSuccess(); } } var defaults = { pageSize: 10, pageIndex: 1, queryParams: "", pagination: "", scriptHtml: "", table: "", url: "", isPagination: false, onLoadSuccess: null } var opts = $.extend(defaults, options); var data = new Array(); var totalCount; queryForm(); var method = {}; return method.getPageIndex = function () { return this.pageIndex; },//当前页刷新 method.onReload = function () { queryForm(); },//重新加载 method.onLoad = function () { opts.pageIndex = 0; queryForm(); }, method.getData = function () { return data; }, method.getTotalCount = function () { return totalCount; }, method } $.fn.datagrid = function (options) { return init(options, $(this)); }})(jQuery)

用法

ID Name

 

注:支持单页多列表多分页

转载地址:http://puzgl.baihongyu.com/

你可能感兴趣的文章
[Android 新特性] 15项大改进 Android 4.4新特性解析
查看>>
社会好比一张千层饼
查看>>
面向对象的特征有哪些方面
查看>>
uboot中gd的定义和使用
查看>>
Tcpdump MySQL Query
查看>>
读书笔记-APUE第三版-(8)进程控制
查看>>
JSFL 获取当前脚本路径,执行其他脚本
查看>>
理解JavaScript中的事件处理
查看>>
Win7 公布网站 HTTP 错误 404.4 - Not Found
查看>>
特征选择方法之信息增益
查看>>
mac jdbc连接mysql
查看>>
Activity生命周期的学习以及Logcat的使用
查看>>
Longest Valid Parentheses leetcode java
查看>>
Android的两种菜单
查看>>
poj 1218 THE DRUNK JAILER
查看>>
WordPress SEO ☞ WordPress网站终极优化指南
查看>>
Environment 常用方法
查看>>
【TYVJ】1338 QQ农场(最大流+最大权闭合图)
查看>>
解决Python2.7的UnicodeEncodeError: 'ascii' codec can’t encode异常错误
查看>>
最近在准备开发进销存管理系统
查看>>