`
西蜀石兰
  • 浏览: 119187 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

DataTables实现增删改查(1.10版本)

 
阅读更多
这段时间项目需要做个APP的管理后台,运维人员用的,简单的增删改查,于是想到了dataTable,下面简单记录下个人在使用过程中的一些难点,顺带一些没有解决的问题,将随着项目的进展,慢慢解决。

先看一下插件的页面效果:



对于一款前端插件,要考虑这样一个问题,相比不用插件和其他插件,这款插件的优势值不值得自己花精力去学习并掌握这个插件。

如果仅仅作为表格的载体,其实有很多插件可以选择。我更看重的是它的编辑功能,后台为维护更多的是对单跳数据进行操作,具体场景是客服和客户1V1的交流,而dataTables对于单条数据的编辑,是相当不错的,具体来说,采用bootstrap的模态窗口(插件自动生成)实现了修改功能。对于开发人员来说,省去了另写编辑页面的繁琐。

话不多说,下面慢慢粘代码以及效果图。

对于一个和后台交互的插件,最重要其实就两件事情,需要什么样的数据格式,提交给后台的又是怎样的数据格式,搞清楚这两点,其实就没什么了。

dataTables支持很多数据源,官方有详细介绍,项目采用了轻量级的json数据进行传输,以下是插件填充表格时所需的数据格式:




对于增删改查,dataTable默认传给后台的数据相当蛋疼,这里费了不少心思,最后重新封装了下数据格式,先看一下默认的数据格式:



想要看懂上面的数据,还需要知道一个知识点,如果想使用dataTables的编辑功能,返回数据中,需要包括"DT_RowId"这个键,这个键值对需要放在每一行的数据中,充当表格的主键,当然,重复也没关系,这就是让人困惑的地方;

有了这个知识点,在看编辑数据时,默认的数据格式,这些都是键值对,对于键的命名,action表示操作行为,包括remove,edit,create三种键值,支持自定义,详细的可以参考官方文档;剩下的便是每个单元格的表示,“data[row1][accountId]”中,data是固定的,row1是选中行DT_RowId的值,accountId是选中行列的别称,关于列名和json数据源键名的匹配,以下会有详细代码。

看懂这个之后,再去思考后台如何拿数据,后台不可能去遍历request中的所有参数,所以比较好的方法就是在前台二次封装这些数据,通过对json数据的重新封装,即可,以下是个人的封装方法:
	ajax: {
		url:"/charge-manage/individualMember/edit",
		data:function(data){
			var result={};
			for(var i in data.data){
				var result=data.data[i];
				result.DT_RowId=i;
				result.action=data.action;
				console.log(result);
			}
			return result;
		},
	},


经过这样的封装,参数类型如下:




这样后台就方便拿参数进行操作了。

解决了数据流向问题,在看页面本身的问题,表格列名如何与数据源匹配,这个比较简单,代码如下:
	$('#member').DataTable( {
    	dom: "Bfrtip",
    	ajax:"/charge-manage/individualMember/getMember?"+"phoneNum="+phoneNum,
    	columns:[{data:"memberCode"},
    	         {data:"accountId"},
    	         {data:"phoneNum"},
    	         {data:"password"},
    	         {data:"lastLoginTime"}    	         
    	         ],
    	select:true,
        buttons: [
             { extend: "create", editor: editor },
             { extend: "edit",   editor: editor },
             { extend: "remove", editor: editor }]
    } );


columns集合中的顺序,对应表格列的顺序,data的值,对应json数据源中的键;
以下是表格的实际图形:

编辑操作有自己的操作对象,也就是上面buttons栏引用的,代码如下:
	var editor = new $.fn.dataTable.Editor( {
	ajax: {
		url:"/charge-manage/individualMember/edit",
		data:function(data){
			var result={};
			for(var i in data.data){
				var result=data.data[i];
				result.DT_RowId=i;
				result.action=data.action;
				console.log(result);
			}
			return result;
		},
	},
		  	
		  	 fields: [{
	                label: "会员编码:",
	                name: "memberCode"
	            }, {
	                label: "账户编码:",
	                name: "accountId"
	            },{
            	 	label: "手机号:",
	                name: "phoneNum"
	            },{
            	 	label: "密码:",
	                name: "password"	            	
	            },{
            	 	label: "最后登录时间:",
	                name: "lastLoginTime"	            	
	            }],
	        table: "#member"
	 });


fields集合中,label值是模态窗口对应的名称,细心的同学可以看到加了冒号,name对应向后台传入参数的键名。
下面是该模态的实际图片,再次强调,这玩意是自动生成的!



当然第一次使用,自然有相当多的问题还没有解决,欢迎玩过的同学过来指教。
  • 大小: 13.7 KB
  • 大小: 15.4 KB
  • 大小: 4.9 KB
  • 大小: 3.4 KB
  • 大小: 3.6 KB
  • 大小: 14.9 KB
分享到:
评论
3 楼 jaimyjie 2017-12-01  
能发份源码?谢谢,32166920@qq.com
2 楼 西蜀石兰 2016-08-30  
唯我独赞mo 写道
datatable editor的ajax如何进行再次加载呢,类似以datatable的table.ajax.url,楼主怎么看


可以重写ajax方法,这几天有时间我把这个整理下。
1 楼 唯我独赞mo 2016-06-16  
datatable editor的ajax如何进行再次加载呢,类似以datatable的table.ajax.url,楼主怎么看

相关推荐

    datatables增删改查,行内编辑等官方源码实例

    datatables增删改查,行内编辑等官方源码实例 冒泡编辑,多行编辑、删除,例子超多,官方的实现代码非常精简,可直接引用 datatables.dll,减少了非常多的页面脚本 带数据库SQL文件 vs2015工程

    jQuery+datatables插件实现ajax加载数据与增删改查功能示例

    描述中进一步明确了本文档的知识点范围,主要介绍如何通过jQuery和datatables插件实现数据的增删改查功能,并且特别强调了与页面表格相关的操作技巧。这些技巧可能包括表格初始化设置、事件监听、数据请求的配置和...

    bootstrap3+datatables+servlet+sqlite3后台分页增删改查DEMO

    在本项目中,Servlet承担了与后台数据库交互的角色,它处理来自Datatables的Ajax请求,执行SQL查询(如SELECT、INSERT、UPDATE、DELETE)来完成数据的增删改查操作,并将结果以JSON格式返回给前端。 SQLite3则是一...

    SSM框架整合增删改查分页demo

    在"SSM框架整合增删改查分页demo"中,我们可以深入理解这三个组件如何协同工作,实现数据的CRUD(创建、读取、更新、删除)操作,并进行高效的分页查询。 首先,Spring作为基础框架,负责管理应用中的对象,通过...

    MVC 异步增删改查 Demo

    异步的增删改查DEMO, 其中应用了一些开发中常用的jquery插件,例如表格插件datatables, jquery ui插件用来处理一些常用的tab或者dialog, jquery validate用来进行异步的表单验证, 欢迎大家下载, 有问题请发送至邮箱...

    django入门-增删改实例

    Django提供了内置的权限和认证系统,可以实现用户登录、权限控制等功能。在本例中,可能需要添加登录检查以防止未授权的修改。 9. **测试** 最后,运行开发服务器并访问定义的URL,进行功能测试: ``` python ...

    MVC结构下的增删改查Demo

    在这个Demo中,可能是用某种编程语言(如C#或Java)创建的数据访问对象(DAO),它们与数据库进行交互,执行SQL语句来实现数据的增删改查。例如,添加新记录时,Model会接收来自Controller的数据,并将其保存到...

    datatables1.10+springMVC分页

    datatables1.10向上兼容。日常情况下使用前端插件进行分页,通过后端解析datatables请求来的参数进行request参数解析(demo中对通过datatable包中对datatables发送过来的参数进行一个解析器的操作)通过控制器action...

    sqlalchemy-datatables:jQuery DataTables> = 1.10.xSQLAlchemy集成(金字塔和Flask示例)

    sqlalchemy-datatables是一个框架不可知的库,它提供jQuery > = 1.10的集成,并帮助您管理应用程序中的服务器端请求。 安装 要通过pip安装: 的Python 3 $ pip3 install sqlalchemy-datatables 要从源代码安装:...

    Datatables版本集合免积分下载

    这个资源集合提供了Datatables插件的多个版本,无需积分即可下载,对于开发者来说是一个宝贵的资源库。 Datatables的主要功能包括但不限于: 1. 数据排序:Datatables支持多种排序方式,用户可以根据需求对表格中...

    datatables1.10

    这个版本的 Datatables 包含以下组件和资源: - **CSS 文件**:用于定义表格样式,包括基本样式和响应式布局。 - **JavaScript 文件**:核心的Datatables脚本,用于初始化和控制表格行为。 - **语言文件**:提供不同...

    DataTables-1.9.4 + 1.10.12

    首先,DataTables 1.9.4是较早的版本,它主要提供了以下核心特性: 1. **数据排序**:用户可以对表格中的数据进行多列排序,只需点击表头即可。 2. **数据过滤**:通过内置的搜索框,用户可以快速筛选表格中的内容。...

    Datatables实现多选框与AJAX返回数据 JAVA版

    在本项目中,“Datatables实现多选框与AJAX返回数据 JAVA版”是针对Java开发者的,它涉及到使用Datatables与Spring MVC框架结合,通过AJAX技术动态加载并处理服务器端的数据,同时实现表格内的多选框功能,以提升...

    datatable的例子使用--增加删除修改查询

    首先,DataTable是JavaScript库jQuery DataTables提供的一个功能强大的表格插件,它能够对HTML表格进行增强,提供排序、过滤、分页和数据的增删改查等操作。在网页上,用户可以通过交互式的界面进行数据操作,极大地...

    datatables-1.9.4-API文档-中文版.zip

    赠送jar包:datatables-1.9.4.jar; 赠送原API文档:datatables-1.9.4-javadoc.jar; 赠送Maven依赖信息文件:datatables-1.9.4.pom; 包含翻译后的API文档:datatables-1.9.4-javadoc-API文档-中文(简体)版.zip; ...

    datatables Editor-NET-1.6.5

    "editor做增删改查一流"暗示了Editor是DataTables的一个功能强大的扩展,它提供了基本的数据操作功能,包括添加(Add)、删除(Delete)、修改(Edit)和查询(Query)数据,非常适合用于后台数据管理界面。...

    DataTables-1.8.0

    7. **响应式设计**:随着移动设备的普及,DataTables 1.8.0 版本开始引入响应式设计,确保在不同设备上都能提供良好的显示效果。 8. **自定义列**:允许用户根据需求选择显示哪些列,或者隐藏不相关的列,提高数据...

    JQuery DataTables示例,包含分页、拖拽、导出

    它简化了后端逻辑的实现,与DataTables的结合,实现了前后端的高效协作。 在实际使用中,要配置DataTables,我们需要在HTML表格元素上添加特定的类和属性,并设置必要的JavaScript代码。通常包括以下步骤: 1. **...

    bootstrap的datatabes组件完成增删改的完整源码

    Bootstrap的DataTables组件是一款强大的数据展示工具,常用于网页中的表格操作,如增删改查。这个组件结合了美观的Bootstrap框架与功能丰富的DataTables插件,提供了丰富的自定义选项和用户交互功能,使得在Web应用...

Global site tag (gtag.js) - Google Analytics