ExtJs 4多选编辑表单没有't负载选择
ExtJs 4 MultiSelect Edit Form doesn't load selections
我需要一些关于Extjs 4中多选组合框的帮助。
我需要它在我的表单中,用于一个由中心表分割的简单ManyToMany关系:
用户-<User_Group>-分组
其中:
用户:id、名称、年份
User_Group:User_id,Group_id
组:id,名称
我对用户的创建形式没有问题,我可以通过php将我通过组合框关联的所有组保存到数据库中。
现在,我有一个包含所有用户的网格,当我尝试开始编辑其中一个用户时,不会加载组合框的选择,但组合框的字段显示更正选择的id。
例如:
当我尝试编辑这个用户(json代码)
{
"id": 86,
"name": "tempname",
"year": 1492,
"groups_id": [1,2,3]
}
编辑表单中填写了所有信息,组合框字段显示1,2,3,但下拉菜单中没有选择任何内容。
这是我的组合框:
{
xtype: 'combobox',
multiSelect: true,
name: 'groups_id',
fieldLabel: 'Group/s',
valueField: 'id',
displayField: 'name',
store: 'Groups',
allowBlank: false
}
那么,为什么在加载表单时没有选择任何内容呢?为什么我用来加载组合框(groups_id)的id没有真正绑定到它?用户的json结构是错误的?
我已经为此度过了两天。。。是的。。。我对ExtJs很陌生;)
好吧,吃了一些三明治后,我设法把事情做好了。
问题是,当我加载要编辑的记录时,record.get('group_id')是string的数组(例如["1","2","3"]),而我需要一个整数的数组(如图[1,2,3])。
为了转换/解析记录.get('groups_id')我做了这样的操作:
//from [ "1" , "2" , "3"] to [ 1 , 2 , 3]
//preparing an empty array for the parsed ids
var ids_integer = new Array();
//one by one, from string to int
record.get('groups_id').forEach( function(id){
ids_integer.push(parseInt(id));
});
//sobstitute the String Array with the Int Array
record.set('groups_id', ids_integer);
var view = Ext.widget('useredit');
view.down('form').loadRecord(record); //finally load record in my form
相关文章:
- 下拉选择可自动更改第二个下拉选择
- 如何使用jQuery选择下拉列表的值
- jquery点击函数select&取消选择
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 按照选项卡索引的顺序循环一个jQuery选择
- 在动态创建的元素上获取对特定选择器的引用
- AngularJS-在JSON选择器中使用变量名
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 获取选择框的状态
- d3基于用户选择动态更新节点
- 提交后保留下拉选择的值
- JQuery对动态创建的对象进行选择
- 无法在Ionic select中预先选择最后一个选项
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- jQuery自动完成阻止选择后聚焦
- 使用此选项选择父类内部的类
- ExtJs 4多选编辑表单没有't负载选择
- jtree -禁用负载时的子节点自动选择
- 如何处理超过3000个值负载上选择选项下拉
- JsTree 3选择负载上的一个特定节点