DataTables中文网推出了 第一篇 关于DataTables和其他表格插件比较后,为了把让这个比较更有意义,更能帮助到大家,DataTables中文网 做了问卷调查,根据小伙伴们的填写我归纳了一下,一个表格插件关注点在以下三个部分基础、高级的和进阶:

  • 基础

    • 排序
    • 分页
    • 搜索
    • 美观
    • 合理的配置
  • 高级
    • 单击和双击行事
    • 选择高亮显示
    • 增删改查
    • 列宽拖动
    • 数据导出
    • 添加序号
  • 进阶
    • 支持的数据类型
    • 行内编辑
    • 合并单元格
    • 自定义表头
    • 高扩展性
    • 易用的API
    • 模块化

所以根据以上列出的这些功能点,DataTables中文网至少还会推出三篇文章来讲DataTables和DataGrid之间的“优劣”, 从而帮助大家选出适合自己的表格插件。

由于我也是初次使用DataGrid,所以在某些方面可能还不能描述的很好, 如发现文章有说得不对或者可以改进的地方,希望您还能在阅读完文章后在下方或者通过右下角的反馈发表下自己的看法。 如果觉得本系列文章能帮助到小伙伴们, 希望小伙伴能多多支持本站,多给DataTables中文网提建议,多宣传DataTables中文网。

说之前插播一个广告

x i

 

好了,我们进入正题吧。

前面一篇讲到了分别使用最简配置,使表格变得更强大,今天我们要讲的就是基础部分, 对照API,Demo分别实现排序,分页,搜索,这三个基本功能。

  1. DataTables实现排序,分页,搜索
  2. DataGrid实现排序,分页,搜索
  3. 讨论

  • DataTables实现排序,分页,搜索

对于DataTables,其实之前的例子中已经做完了这个步骤,因为默认就开启了这部分功能,还是直接看代码吧

和之前一样,有如下表格:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<table>
<thead>
<tr>
<th>Code</th>
<th>Name</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>001</td><td>name1</td><td>2323</td>
</tr>
<tr>
<td>002</td><td>name2</td><td>4612</td>
</tr>
<tr>
<td>003</td><td>name3</td><td>4612</td>
</tr>
<tr>
<td>004</td><td>name4</td><td>4612</td>
</tr>
<tr>
<td>005</td><td>name5</td><td>4612</td>
</tr>
<tr>
<td>006</td><td>name6</td><td>4612</td>
</tr>
<tr>
<td>007</td><td>name7</td><td>4612</td>
</tr>
<tr>
<td>008</td><td>name8</td><td>4612</td>
</tr>
<tr>
<td>009</td><td>name9</td><td>4612</td>
</tr>
<tr>
<td>010</td><td>name10</td><td>4612</td>
</tr>
<tr>
<td>011</td><td>name11</td><td>4612</td>
</tr>
</tbody>
</table>

第一步:引入 DataTables 的js和css

1
2
3
4
5
6
 <!--样式文件-->
<link rel="stylesheet" type="text/css" href="plugin/datatables/jquery.dataTables.min.css">
<!--jquery js-->
<script src="plugin/datatables/jquery.js"></script>
<!--DataTables 核心 js-->
<script src="plugin/datatables/jquery.dataTables.min.js"></script>

第二步:给表格加上id

1
2
3
<table id="example" class="display">
……
</table>

第三步:初始化

1
2
3
4
5
6
7
8
9
10
11
<script>
$(function () {
$('#example').DataTable({
columns:[
{data:"firstname"},
{data:"lastname"},
{data:"phone"}
]
});
});
</script>

只需简单的一行代码,DataTables就会帮你把表格配备上排序,翻页,快速过滤。这次的代码比之前的要多了列配置,本次先卖个关子, 后面再告诉大家为什么要这样配置?


Show
entries
Search:
Code Name Price
001 name1 2323
002 name2 4612
003 name3 4612
004 name4 4612
005 name5 4612
006 name6 4612
007 name7 4612
008 name8 4612
009 name9 4612
010 name10 4612
Showing 1 to 10 of 11 entries
Previous12Next

  • DataGrid实现排序,分页,搜索

不多说,还是来看看DataGrid是怎么实现的。在做DataGrid的时候我花了些时间,用起来不那么熟练,遇到了许多问题,不过通过在网上搜索 最终解决了问题,只是翻页还是有点小bug,需要点击下排序之后,翻页才正常,如果小伙伴你知道怎么解决希望您能告诉我

第一步:引入 EasyUI DataGrid 的js和css

1
2
3
4
5
6
7
8
9
10
 <!--核心样式文件-->
<link rel="stylesheet" type="text/css" href="/assets/easyui/easyui.css">
<!--图标css-->
<link rel="stylesheet" type="text/css" href="/assets/easyui/icon.css">
<!--颜色样式-->
<link rel="stylesheet" type="text/css" href="/assets/easyui/color.css">
<!--核心js-->
<script type="text/javascript" src="/assets/easyui/jquery.easyui.min.js"></script>
<!--开启过滤需要引入的js-->
<script type="text/javascript" src="/assets/easyui/datagrid-filter.js"></script>

第二步:使用js代码初始化DataGrid

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var dg = $('#dataGrid').datagrid({
/**开启分页*/
pagination: true,
/**默认是服务器排序,这里需要手动关闭,切换为客户端排序*/
remoteSort: false,
/**单条选择模式*/
singleSelect: true,
/**配置*/
columns: [[
/**sortable:true 开启排序*/
{field: 'firstname', title: "first_name", sortable: true},
{field: 'lastname', title: "last_name", sortable: true},
{field: 'phone', title: "phone", sortable: true}
]]
}); /**开启过滤*/
dg.datagrid('enableFilter');

效果如下:


 
first_name
last_name
phone
001
name1
2323
002
name2
4612
003
name3
4613
004
name4
4614
005
name5
4615
006
name6
4612
007
name7
4712
008
name8
4812
009
name9
4912
010
name10
5012
011
name11
5112
012
name12
34235
 
          Page of 2             
Displaying 1 to 10 of 12 items

  • 讨论

可能我是初接触DataGrid,所以在做这个例子的时候显的有些费力,虽然不是难的功能,作为初学者我觉得DataGrid还是比较难入手。 但回过头来想想,我最开始使用DataTables的时候不也是这样费力么?开玩笑了,大家不要当真。

说说我对这篇文章的感谢,总的来说两款表格插件表现都不错,功能都能实现,只要对着文档,还是能够做出来。同时也分享下一个经验, 我觉得实用于所有的插件:

  • 首先,学习或者说使用一个插件首先去查看Demo,我的做法是把作者提供的所有Demo浏览一遍,知道这个插件他能做什么
  • 其次,根据自己的情况,结合Demo做出属于自己的示例
  • 再次,查阅API文档,弄清楚各个参数的含义及用法
  • 最后,应用到项目中去

参考:

DataGrid服务器排序列子

DataGrid内容过滤

DataGrid增加分页

DataTables VS EasyUI DataGrid 基础应用 转的更多相关文章

  1. easyui datagrid 基础方法和事件

    数据表格属性(DataGrid Properties) 属性继承控制面板,以下是数据表格独有的属性. 名称 类型 描述 默认值 columns array 数据表格列配置对象,查看列属性以获取更多细节 ...

  2. easyUI datagrid笔记

    easyUI datagrid 简单使用与注意细节 背景: 业余爱好,使用了一下easyUI的搜索框与数据表格,并把两者整合起来进行使用. 使用前提(引入需要的js and css): <lin ...

  3. EasyUI DataGrid 实现单行/多行编辑功能

    要实现 EasyUI DataGrid 的可编辑很简单,在需要编辑的列添加 editor [编辑器]就可以了. 单行编辑 // 初始化数据列表 function initDatagrid() { $( ...

  4. JQuery EasyUI DataGrid动态合并(标题)单元) 一

    JS: /** * EasyUI DataGrid根据字段动态合并单元格 * @param fldList 要合并table的id * @param fldList 要合并的列,用逗号分隔(例如:&q ...

  5. easyui datagrid可编辑表格使用经验分享

    文章目录 1相关接口方法 2列属性formatter 3编辑器类型 3.1基于my97的编辑器 3.2简单的密码编辑器 3.3动态增加/删除编辑器 4字段的级联操作 4.1combobox的级联操作 ...

  6. jQuery EasyUI Datagrid组件默认视图分析

    在Datagrid基础DOM结构的一文中,我对Datagrid组件的骨架做了很详细的描述.有了骨架还并不完整,还得有血有肉有衣服穿才行.强大的Datagrid组件允许我们自己定义如何在基础骨架上长出健 ...

  7. JQuery EasyUI DataGrid动态合并单元格

    /**        * EasyUI DataGrid根据字段动态合并单元格        * @param fldList 要合并table的id        * @param fldList ...

  8. 完美实现保存和加载easyui datagrid自定义调整列宽位置隐藏属性功能

    需求&场景 例表查询是业务系统中使用最多也是最基础功能,但也是调整最平凡,不同的用户对数据的要求也不一样,所以在系统正式使用后,做为开发恨不得坐在业务边上,根据他们的要求进行调整,需要调整最多 ...

  9. 关于EasyUI DataGrid行编辑时嵌入时间控件

    本人做一个名为“安徽中控”项目时,为快速开发基础数据增删改模块,遂采用EasyUIDatagrid将所有增删改查的操作都集中于表格中,并且所有增删改查操作都集中于泛型对象,从而不必为每个表写具体的增删 ...

随机推荐

  1. Effective C++ Item 9 Never call virtual functions during constrution or destruction

    Because such calls would never go to a more derived class than that of currently executing construto ...

  2. ionic 弹窗(alert, confirm)

    直接上代码吧,不解释了 控制器: angular.module('app.controllers', []) .controller('categoryCtrl', ['$scope', '$http ...

  3. M451 PWM对照数据手册分析

    PWM_T Struct Reference Control Register » Pulse Width Modulation Controller(PWM)   typedef struct { ...

  4. string整理

    /* scanf是c语言的,而string是c++的类,所以不能使用scanf直接读入 */ #include<cstdio> #include<string>//注意支持库 ...

  5. 【BZOJ3648】寝室管理 树分治

    [BZOJ3648]寝室管理 Description T64有一个好朋友,叫T128.T128是寄宿生,并且最近被老师叫过去当宿管了.宿管可不是一件很好做的工作,碰巧T128有一个工作上的问题想请T6 ...

  6. 【BZOJ3585/3339】mex 莫队算法+分块

    [BZOJ3585]mex Description 有一个长度为n的数组{a1,a2,...,an}.m次询问,每次询问一个区间内最小没有出现过的自然数. Input 第一行n,m. 第二行为n个数. ...

  7. eclipse控制台不限制显示的行数

    在Preferences中搜索Console,设置Limit console output没有限制即可.

  8. [Jenkins] 解决 Gradle 编译包含 SVG Drawable 出现异常

    异常信息 java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the value of th ...

  9. PHP array_merge() 函数

    <?php $a1=array("a"=>"red","b"=>"green"); $a2=array ...

  10. Python--进阶处理2

    # ===================第二章:字符串和文本====================== # -----------------使用多个界定符分割字符串--------------- ...