论坛成员我遇到的一个问题是将组合框名称选择的值显示到我的网格面板列。
我的 gridPanel 有一列包含资源组合框,用户可以从资源中选择多个值。
下面是我的 gridpanel 列与列组合框 gridpanel 列
{
xtype: 'gridcolumn',
dataIndex: 'resourceid',
text: 'Resource',
field: resourcecombo
},
资源组合
var resourcecombo = new Ext.form.ComboBox({
id: 'resourceid',
name: 'resourceid',
emptyText: 'Select resource',
displayField: 'firstname',
store: Ext.create('rms.store.employee'),
valueField: 'id',
multiSelect: true,
queryMode: 'local',
typeAhead: true
});
在这里,我得到了资源列表,我也可以进行多选。基于此多选,将 id 发送到服务器,并且响应我想将值设置为网格列。
但是,我从服务器获得了正确的响应,但我的网格列在此列中仅显示一个名称。.
我想显示所有选定资源的名称,以逗号分隔,如 rishi、yogi、hiren 等
解决方案 只需使用以下代码更改网格列
xtype: 'gridcolumn',
dataIndex: 'resources',
header: 'Resources name',
field: resourcecombo,
renderer: function(resources){
var result = [];
resources = resources || [];
for (var idx = 0, len = resources.length; idx < len; idx++ ){
var value = resources[idx].name;
if(value){
result.push(value);
}
}
return result.join(', ');
}
并使用以下代码更改模型
Ext.define('rms.model.taskmainModel', {
extend : 'Ext.data.Model',
fields : [
{ name : 'id', type : 'int' },
{ name : 'taskname', type: 'string'},
**{ name : 'resources', type: 'auto'},**
{ name : 'cmpname', mapping: 'project.company.cmpname'}
]
});
上面的解决方案对我有用,希望这可以帮助一些人。
谢谢你的支持。