最近公司一个项目,因为要使用div模拟的窗口,因为久闻extjs的大名,因此就想在项目中使用一下.首先下载了multiselect的
extjs3.0 demo.看到的代码这里我就不粘贴了.因为它这个是创建时自动加载的ArrayStore(关键字是:data:
ds),没有动态增加的示例,但我们的项目需要有三个列表框,并且后两个的内容要根据第一个列表框内容动态的加载,因此要在选择第一个列表框的内容时,动
态填充后两个的内容.我比较佩服exjts的示例写作人员,这些应该在示例中体现的功能,他们都没有写到,包括之前的2.2版本的示例,网上也没有搜索
到,害我找了一天如何动态控制列表数据的功能.首先说明一下,我的方法也不是官方的方法,只是自己灵机一动想到的,下面是动态增加列表项的方法.
在方法之前我的关于multiselect对象的store是这样定义的:
flowDs = new Ext.data.ArrayStore({
data: [[123,123]],
fields: ['value','text']
});
(1)var toflowStore = msForm.getForm().findField('toflow').store; //根据名称得到multiselect对象的store对象;
(2)创建一个Ext.data.Record对象,这正在我想了好久的增加方法,也怪自己太笨了:
var record = new Object();
record.value = "2";
record.text = "3";
var records = new Ext.data.Record(record);
(3) 将创建的Ext.data.Record对象加至multiselect的store对象中:
toflowStore.add(record1);
通过以上三步就可以为列表multisleect动态增加列表项了,提醒一下删除某项可以通过remove()/removeAll()方法,具体的使用方法可以通过示例代码的ItemSelector.js中查到.
通过以上分析后,大致可以简单估计到multiselect的创建规则,在store中有一个属性fields:
['value','text'],则在创建时,系统会通过循环的方式将属性data:[[123,123]]中的内容创建为object对象,然后写到
时它的store对象中,类似下面的代码:
var item = [],itemObj,record;
for(var i = 0; i< this.data.length;i++){
item = this.data[i];
itemObj = new Object();
itemObj.value = item[0];
itemObj.text = item[1];
record = new Ext.data.Record(itemObj);
this.store.add(record);
}
以上只是我腓臆的猜测,具体extjs的工程师是不是如此设计他们的程序,还没有仔细研究.
分享到:
相关推荐
NULL 博文链接:https://jxd-zxf.iteye.com/blog/766360
bootstrap-multiselect,使用了bootstrap风格实现下拉框的条件检索、多选、单选控制
jquery.multiselect.filter.js ; jquery.multiselect.filter.css
左右移动下拉框插件multiselect
multiselect 的例子,去除多余代码,js代码,可以直接运行。
左右移动多选框插件,压缩包文件比较多,需要自己查找multiselect.min.js 、multiselect.js 文件
bootstrap-multiselect.css,bootstrap-multiselect.js,bootstrap-multiselect.less,bootstrap-multiselect详细文档及demo
bootstrap-multiselect组件主要解决了前端页面下拉选框动态加载数据,下拉框多选的问题
jquery下拉多选框multiSelect
bootstrap multiselect单选、多选下拉选择控件
Multiselect:操作多选列表框,用jquery实现的两边多选列表控件.可以将需要选定的项目从左边添加到右边的列表框中,或者将不需要的项目从右边列表框中删除。
使用jquery multiselect 插件,获取选中的值。可用的项目例子.
原有官方资源的升级版,彻底解决使用tree-multiselect开发权限配置时需要用到的添加和编辑场景,打通前端交互使用障碍。下载后打开demo中/tree-multiselect.js-demo/test/mytest_new.html测试。
jquery.multiSelect.js
bootstrap-multiselect
jquery的multiselect2side左右选择框插件
bootstrap-multiselect控件的简单使用示例