extjs 列表框(multiselect)的动态添加列表项的方法
程序员文章站
2022-03-02 08:21:05
因为它这个是创建时自动加载的arraystore(关键字是:data: ds),没有动态增加的示例,但我们的项目需要有三个列表框,并且后两个的内容要根据第一个列表框内容动态...
因为它这个是创建时自动加载的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的工程师是不是如此设计他们的程序,还没有仔细研究.
在方法之前我的关于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的工程师是不是如此设计他们的程序,还没有仔细研究.
上一篇: python(matplotlib)动态的显示图像
下一篇: 编译LuxCore2.5
推荐阅读
-
C#中GridView动态添加列的实现方法
-
C#中DataGridView动态添加行及添加列的方法
-
extjs 列表框(multiselect)的动态添加列表项的方法
-
JavaScript动态添加列的方法_javascript技巧
-
JavaScript动态添加列的方法_javascript技巧
-
extjs 列表框(multiselect)的动态添加列表项的方法_extjs
-
extjs 列表框(multiselect)的动态添加列表项的方法_extjs
-
Extjs如何动态修改gridPanel列头信息和数据的解决方法
-
Extjs如何动态修改gridPanel列头信息和数据的解决方法
-
extjs 列表框(multiselect)的动态添加列表项的方法