dataTable-editor的设置(2)

本文记录了在使用dataTable-editor时遇到的坑,包括checkbox参数处理、风格调整、控件位置设置、i18n对象使用、禁用编辑字段的方法,以及如何为表格绑定多个编辑器对象。同时,分享了处理复选框数组数据的技巧和如何为表格对应多个操作按钮的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--2016-12-30补充
这几天使用checkbox这个属性,有个坑,记录一下。
checkbox获取的参数是一个数组,所以后台需要用一个数字类型的字段去接收这个字段;
由于我后台接口直接对应数据库表的字段,所以,我把该字段设计成了string,这样在传递时,就需要做一个简单的适配,将数组适配成String后进行传输;


先看下整体风格,接受不了官网那种豪放的风格,因为在页面风格上,做了不小的调整。

这是表格的页面:
[img]http://dl2.iteye.com/upload/attachment/0119/2836/1fc23f95-e91b-3e57-b0d1-a184f92edf21.png[/img]

这是编辑框的页面:

[img]http://dl2.iteye.com/upload/attachment/0119/2838/cdfb92ca-e6b6-3e22-89fb-5833ccaa0873.png[/img]


想到什么就说什么吧。
1.关于风格,选择的是bootstrap风格,从官网下载的貌似有个坑,需要修改一个地方,网上有不少这个坑的博客,遇到搜索下就OK了;

2.关于页面的控件位置的设置,自己定义一个div,然后使用官方提供的方法:table.buttons().container().appendTo("#buttons"),记得自己声明table变量;

3.关于各个输入框设定显示文本,其实是操作i18n这个对象

editorForEdit = new $.fn.dataTable.Editor({
i18n : {
edit : {
title : "修改用户信息",
submit : "修改"
}
},
"ajax" : "../php/tableOnlyData.php",
"table" : "#example",
"fields" : [ {
"label" : "用户名",
"name" : "user"
}, {
"label" : "联系人",
"name" : "contextPerson"
}, {
"label" : "邮箱",
tyoe : 'button',
"name" : "mail"
}, {
"label" : "员工号",
"name" : "num"
}, {
type : "checkbox",
label : "角色",
name : "player",
options : [ '管理员', '其他', ]
}, {
type : "radio",
label : "状态",
name : "state",
options : [ '正常', '禁用', ]
}],

});


4.一个table对象可以绑定多个editor对象,想添加多少按钮就添加多少按钮;

5.关于修改模态中,文本框的设置,有时候不想让用户修改某些信息,可以使用disable方法,具体如下:

editorForEdit.on('onInitEdit', function() {
editorForEdit.disable('user');
});

上面代码的效果就是让用户名这一栏无法修改;

5.1关于复选框数据问题,复选框数据是一个数组,即在想表格传递数据时,直接传递数组,编辑页面能够自动识别,其他类型数据没有尝试;

6.表如何对应多个按钮
js代码中的editorForCreate、editorForEdit都是单独生成的对象

var table = $('#example').DataTable({
"language" : {
"zeroRecords" : "无数据",
"info" : "",
search : "查询",
select : {
rows : ""
}
},
order : [ [ 0, 'asc' ] ],
searching : true,
paginate : false,
"columns" : [ {
data : "DT_RowId",
}, {
data : "user",
sorting : false
}, {
sorting : false,
data : "player",
}, {
sorting : false,
data : "state",
}, {
sorting : false,
data : "contextPerson",
}, {
sorting : false,
data : "mail",
}, {
sorting : false,
data : "num",
}, {
sorting : false,
data : "createPerson",
}, {
data : "createTime",
sorting : false,
} ],
"dom" : "Bfrtip",
"data" : tableData,
select : true,
buttons : [ {
extend : "create",
editor : editorForCreate,
text : '创建'
}, {
extend : "edit",
editor : editorForEdit,
text : '修改基本信息'
}, {
extend : "edit",
editor : editorForPassword,
text : '修改密码'
} ]
});



7.最后贴上全部的js代码

/**
*
*/
$(function() {
var tableData = [ {
"DT_RowId" : "1",
"user" : "121",
"player" : [ '管理员', '其他' ],
"state" : "正常",
contextPerson : "张三",
"mail" : "123@qq.com",
"num" : "12345",
createPerson : "admin",
createTime : "2016-09-09 12:12:12"
}, {
"DT_RowId" : "2",
"user" : "121",
"player" : [ '管理员' ],
"state" : "正常",
contextPerson : "张三",
"mail" : "123@qq.com",
"num" : "12345",
createPerson : "admin",
createTime : "2016-09-09 12:12:12"
}, ]

editorForCreate = new $.fn.dataTable.Editor({
i18n : {
create : {
title : "增加用户",
submit : "增加"
}
},
ajax : "../php/tableOnlyData.php",
table : "#example",
fields : [ {
label : "用户名",
name : "user"
}, {
label : "密码",
name : "password"
}, {
label : "联系人",
name : "contextPerson"
}, {
label : "邮箱",
tyoe : 'button',
name : "mail"
}, {
label : "员工号",
name : "num"
}, {
type : "checkbox",
label : "角色",
name : "player",
options : [ '管理员', '其他', ]
}, {
type : "radio",
label : "状态",
name : "state",
options : [ '正常', '禁用', ]
} ],

});
editorForEdit = new $.fn.dataTable.Editor({
i18n : {
edit : {
title : "修改用户信息",
submit : "修改"
}
},
"ajax" : "../php/tableOnlyData.php",
"table" : "#example",
"fields" : [ {
"label" : "用户名",
"name" : "user"
}, {
"label" : "联系人",
"name" : "contextPerson"
}, {
"label" : "邮箱",
tyoe : 'button',
"name" : "mail"
}, {
"label" : "员工号",
"name" : "num"
}, {
type : "checkbox",
label : "角色",
name : "player",
options : [ '管理员', '其他', ]
}, {
type : "radio",
label : "状态",
name : "state",
options : [ '正常', '禁用', ]
}],

});
editorForPassword = new $.fn.dataTable.Editor({
i18n : {
edit : {
title : "修改密码",
submit : "修改"
}
},
ajax : "../php/tableOnlyData.php",
table : "#example",
fields : [ {
label : "新密码",
name : "password1"
}, {
label : "确认新密码",
name : "password2"
} ],

});
editorForEdit.on('onInitEdit', function() {
editorForEdit.disable('user');
});

var table = $('#example').DataTable({
"language" : {
"zeroRecords" : "无数据",
"info" : "",
search : "查询",
select : {
rows : ""
}
},
order : [ [ 0, 'asc' ] ],
searching : true,
paginate : false,
"columns" : [ {
data : "DT_RowId",
}, {
data : "user",
sorting : false
}, {
sorting : false,
data : "player",
}, {
sorting : false,
data : "state",
}, {
sorting : false,
data : "contextPerson",
}, {
sorting : false,
data : "mail",
}, {
sorting : false,
data : "num",
}, {
sorting : false,
data : "createPerson",
}, {
data : "createTime",
sorting : false,
} ],
"dom" : "Bfrtip",
"data" : tableData,
select : true,
buttons : [ {
extend : "create",
editor : editorForCreate,
text : '创建'
}, {
extend : "edit",
editor : editorForEdit,
text : '修改基本信息'
}, {
extend : "edit",
editor : editorForPassword,
text : '修改密码'
} ]
});

table.buttons().container().appendTo("#buttons")
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值