自定义jquery表格插件

模仿easyui的datagrid来做的,只做了个大概,后期慢慢优化和添加功能

css样式

/* CSS Document */
body {
    font: 14px/1.43 "Helvetica Neue", Tahoma, "Microsoft YaHei", Arial;
    color: #253443;
    margin: 0 auto;
    padding: 0 auto;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
    background: #FFF;
    font-size: 12px;
    width: 100%;
    border: 1;
    width: 100%;
}
thead {
    display: table-header-group;
    vertical-align: middle;
    border-color: inherit;
}
tr {
    display: table-row;
    vertical-align: inherit;
    border-color: inherit;
}
table thead tr th {
    padding: 5px 8px;
    font-weight: normal;
    color: #999;
    border-bottom: 1px solid #B50802;
    vertical-align: bottom;
    line-height: 20px;
}
tbody {
    display: table-row-group;
    vertical-align: middle;
    border-color: inherit;
}
table tbody tr td {
    padding: 8px;
    border-top: 0px;
    border-bottom: 1px solid #DDD;
    vertical-align: middle;
    line-height: 20px;
    text-align: center;
}
.mouseover {
    background-color: #3A99AB;
    color: #FFF;
}

自定义jquery

// JavaScript Document
$(function () {
    var dataGrid = function (ele, opt) {
        this.defaults = {
            id: "",
            url: null,
            pageSize: 10,
            pageindex: 1
        }
        this.settings = $.extend({}, this.defaults, opt);
    }

    dataGrid.prototype = {
        init: function () {
            this.create();
            this.bindEvent();
        },
        create: function () {
            var json = this.getAjaxDate(this.settings.url, null);
            var id = this.settings.id;
            $("#" + id).append("<thead><tr></tr></thead><tbody></tbody>");
            this.createTableHead(json.columns,id);
            this.createTableBody(json,id);
        },
        //循环添加表头
        createTableHead: function (headcols,id) {
            for (var i = 0; i < headcols.length; i++) {
                $("#" + id).find("thead tr").append("<th>" + headcols[i].title + "</th>");
            }
        },
		//循环添加行
        createTableBody: function (json,id) {
			var rowsdata="";
			for(var rows=0;rows<json.data.length;rows++)
			{
				rowsdata+="<tr>";
				for (var cols = 0; cols < json.columns.length;cols++) {
					rowsdata+=‘<td>‘ + json.data[rows][json.columns[cols].field] + ‘</td>‘;
				}
				rowsdata+="</tr>";
			}
			$("#" + id).find("tbody").append(rowsdata);
        },
        bindEvent: function () {
            var id = this.settings.id;
            //添加鼠标悬浮事件
            $("#" + id).find("tbody tr").mouseover(function () {
                $(this).addClass("mouseover");
            }).mouseleave(function () {
                $(this).removeClass("mouseover");
            });
            //添加隔行变色
            //$("#" + id).find("tr:odd").css("background-color", "#A77C7B").css("color", "#fff");
        },
        getAjaxDate: function (url, parms) {
            //定义一个全局变量来接受$post的返回值
            var result;
            //用ajax的同步方式
            $.ajax({
                url: url,
                async: false, //改为同步方式
                data: parms,
                success: function (data) {
                    result = data;
                }
            });
            return result;
        }
    }

    $.fn.grid = function (options) {
        var grid = new dataGrid(this, options);
        return this.each(function () {
            grid.init();
        });
    }
})

  

html页面调用

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script src="jquery-1.8.0.min.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="pagetion.js"></script>
<script type="text/javascript">
$(function(){
    $("#dg").grid({
            id:"dg",
            url:"data.json"
        });
    });
</script>
</head>
<body>
<form id="form1">
<table id="dg">
</table>
</form>
</body>
</html>

浏览器显示

时间: 2024-10-11 07:43:13

自定义jquery表格插件的相关文章

15 个最佳的 jQuery 表格插件

现如今,网站开发设计的需求会要求自动适应所有移动设备,即响应式网站: 在开发网站时必须考虑对平板设备融合 fluid(流)和自适应性特点. 大多数网站设计要靠margins, guides, rows and columns等网格系统和布局来在网页上组织内容.网格设计常见于报纸和杂志中的文字图像排版设计. 可以创建网格布局的数量几乎是无限的,并且能够用无数种方式排布.比如:在等间距的两列,三列或者四列网格顶端有一个横跨的header,或者一整页的有着同样外观和感觉的方格. 有一些很好的JQuer

Datatables快速入门开发--一款好用的JQuery表格插件

博主是一个java后端程序员小白,前端技术会用但不精通,做后台的一些功能经常要涉及表格的展示,分页,搜索,排序等等一系列功能,在经历了一段时间的原始手段,开始接触并使用Datatables,一个jquery表格插件,上手很快,重点是超级好用,有完善的中文文档,今天有空,整理一下Datatable的一些使用方法及注意事项,以便随时查阅. DataTables支持的功能: 1.分页,只需要返回符合规范的数据类型,Datatable能帮我们实现好用的分页,同时支持排序,和即时搜索. 2.丰富的数据源的

25款顶级的jQuery表格插件

jQuery 表格插件可以让你创建各种各样的表格布局,表格布局是报纸和杂志中最常见的布局,现在的网站中也很常见,在这篇文章中,我向大家推荐25个jQuery 的表格插件,你可以任意控制表格的行和列,用文本和图片进行填充.我用了顶级的来形容这个些插件,我可以肯定你了解它们之后会觉得很酷. 1. Gridify Gridify 是轻量级的 jQuery 插件,用来创建一个类似 Pinterest 图片加载网格插件.支持图像加载事件,支持窗口缩放事件,支持非常长的高度项,支持动态项宽度,支持动画 (C

25个顶级的jQuery表格插件

jQuery 表格插件可以让你创建各种各样的表格布局,表格布局是报纸和杂志中最常见的布局,现在的网站中也很常见,在这篇文章中,我向大家推荐25个jQuery 的表格插件,你可以任意控制表格的行和列,用文本和图片进行填充.我用了顶级的来形容这个些插件,我可以肯定你了解它们之后会觉得很酷. 1. Gridify Gridify 是轻量级的 jQuery 插件,用来创建一个类似 Pinterest 图片加载网格插件.支持图像加载事件,支持窗口缩放事件,支持非常长的高度项,支持动态项宽度,支持动画 (C

自定义Jquery分页插件

(function ($) { 'use strict'; $.jPager = function (option) { var defaultOption = { pages: [{ id: '', showSelectPage: true }], currentpage: 1, //当前页 pagesize: 20, //一页显示数量 total:1, //条数 totalpage: 1 //总页码 }; var pageObj = $.extend(defaultOption, optio

jquery DataTables表格插件的使用(网页数据表格化及分页显示)

DataTables - 非常强大的 jQuery 表格插件,可变宽页码浏览,现场过滤. 多列排序,自动探测数据类型,智能列宽,可从几乎任何数据源获取数据. 那么在Bootstrap下如何使用DataTables: 只需要在html或ejs下引用写好的样式表css和脚本文件js,对应代码如下: 1 <head> 2 <link href="http://apps.bdimg.com/libs/bootstrap/3.0.3/css/bootstrap.min.css"

自定义jQuery插件

jQuery编写插件的两种方法 1.添加jQuery对象级的插件,是给jQuery类添加方法 写法: (function($){ $.fn.extend({ "函数名":function(自定义参数){ //这里写插件代码 } }); })(jQuery); 或者 (function($){ $.fn.函数名=function(自定义参数){ //这里写插件代码 } })(jQuery); 调用方法:$("#id").函数名(参数); 2.jQuery类级别的插件,

001_ jQuery的表格插件dataTable详解

一. 1.启用id为"datatable1"标签的html的表格jQuery库 $("#datatable1").dataTable( ) Reference: http://www.w3school.com.cn/jquery/jquery_syntax.asp https://datatables.net/  #官网 http://datatables.club/example/diy.html   #自定义表格插件的重要demo 原文地址:https://ww

jQuery 表格隔行变色插件

jQuery提供了用于扩展jQuery功能的方法,即jQuery.fn.extend()方法和jQuery.extend()方法. 基本的JS框架代码如下: 1 ;(function($) { 2 $.fn.extend({ 3 //这里写插件代码 4 }); 5 })(jQuery); 例子:编写一个表格隔行变色插件 JS代码 1. 插件编写 1 //插件编写 2 ;(function($) { 3 $.fn.extend({ 4 "alterBgColor":function(op