jQuery EasyUI 在datagrid上使用combotree 进行多选
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了jQuery EasyUI 在datagrid上使用combotree 进行多选,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2272字,纯文字阅读大概需要4分钟。
内容图文
datagrid本身有编辑功能,根据官方说明,在需要编辑的列上,加上editor 属性即可。具体的类型有以下几种:
text,textarea,checkbox,numberbox,validatebox,datebox,combobox,combotree.
最近想利用combotree实现一个可以多选的树,途中遇到一些问题,放到这里分享一下:
1. 基本写法:
editor="{type:‘combotree‘,options:{url:‘datagrid_data.json‘,multiple:true}}"
这里的type指的是编辑器类型,为了实现多选树,我们使用combotree。 options是 combotree的相关选项,注意:由于它扩展自combo和tree ,因此其选项可以从这三种控件中选择。
url指的是数据加载的来源,这里我们就用demo里的datagrid_data.json文件。multiple是实现多选的关键,之前我一直在tree的选项里面找,比如checkbox=true,这个实现tree的多选没有问题,但是在combotree上不起作用,后来找到了combo的选项,试了一下这个multiple,终于解决了问题。
2. 保存数据:
上面写好之后,就可以在datagrid上实现多选树了,但是保存之后你会发现,虽然选中的数据用逗号分隔开了,但是只有第一条数据被保存了。editor使用combotree的源码如下(在jquery.easyui.min.js):
- combotree: {
- init: function(container, options){
- var editor = jQuery(‘<input type="text">‘).appendTo(container);
- editor.combotree(options);
- return editor;
- },
- destroy: function(target){
- jQuery(target).combotree(‘destroy‘);
- },
- getValue: function(target){
- return jQuery(target).combotree(‘getValue‘);
- },
- setValue: function(target, value){
- jQuery(target).combotree(‘setValue‘, value);
- },
- resize: function(target, width){
- jQuery(target).combotree(‘resize‘, width);
- }
- }
注意看,getValue 和 setValue 方法,他们调用了combotree(‘getValue‘);和combotree(‘setValue‘, value);通过查看API(combo的Methods)可以发现,getValue和setValue是用来获取和设置单值的,如果要设置和获取多个值,需要getValues,setValues
因此重写一下combotree的扩展:
- jQuery.extend(jQuery.fn.datagrid.defaults.editors, {
- combotree: {
- init: function(container, options){
- var editor = jQuery(‘<input type="text">‘).appendTo(container);
- editor.combotree(options);
- return editor;
- },
- destroy: function(target){
- jQuery(target).combotree(‘destroy‘);
- },
- getValue: function(target){
- var temp = jQuery(target).combotree(‘getValues‘);
- //alert(temp);
- return temp.join(‘,‘);
- },
- setValue: function(target, value){
- var temp = value.split(‘,‘);
- //alert(temp);
- jQuery(target).combotree(‘setValues‘, temp);
- },
- resize: function(target, width){
- jQuery(target).combotree(‘resize‘, width);
- }
- }
- });
也就是说,从combotree获取到的值是以逗号分隔(分隔符可以改,默认是逗号)的字符串,之前的setValue方法只取第一个元素,如果转换成数组,就可以作为参数传递给setValues方法,这样datagrid就全部接收了
OK 经过以上两步,datagrid上直接操作多选树就实现了,当然我们这里只用到了一些就简单的options,如果需要更多的功能,可以参考官方API:
http://www.jeasyui.com/documentation/index.php#
原文:http://www.cnblogs.com/dashen/p/4313032.html
内容总结
以上是互联网集市为您收集整理的jQuery EasyUI 在datagrid上使用combotree 进行多选全部内容,希望文章能够帮你解决jQuery EasyUI 在datagrid上使用combotree 进行多选所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。