如何从组合框到gridpanel extjs 4显示多选值

时间:2012-04-17 06:22:06

标签: javascript extjs4 extjs-mvc

论坛会员我遇到一个问题就是在我的gridpanel列中显示组合框名称选择值。

我正在使用gridPanel,其中一列包含资源组合框,用户可以从资源中选择多个值。

下面的

是我的gridpanel列,其中包含列组合框 gridpanel列

{
             xtype: 'gridcolumn',
             dataIndex: 'resourceid',
             text: 'Resource',
             field: resourcecombo
        },

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'}

             ]

});

以上解决方案对我有用,希望这对某些人有所帮助。

感谢您的支持。

1 个答案:

答案 0 :(得分:0)

您已指定组合框上显示的名称为'firstname',此字符串将对应于其下方的值(即'id')。如果你认为它不起作用,那就考虑一下:

  • 如果选择了多个项目并且此组合框未处于“焦点”状态,“选定项目”将如何显示在组合框中? (组合将显示所选项目的一个随机,或将它们列在菜单中?)
  • 再次单击组合框以选择其他项目后,如何重新显示“所选项目”? (如果选择了多个项目,它们是否会显示相同的“所选资源的名称,用逗号分隔,如rishi,yogi,hiren”,如您所述?)

所以我建议选择其他方式,例如:使用其他字段显示以逗号分隔的名称