ExtJS ComboBox 列表,带有基于商店数据的图标和文本

Posted

技术标签:

【中文标题】ExtJS ComboBox 列表,带有基于商店数据的图标和文本【英文标题】:ExtJS ComboBox list with icons and text based on store data 【发布时间】:2016-05-26 12:45:30 【问题描述】:

我有一个combobox,它是从商店提供的,其中包含iconCLS 和文本的信息。

我希望它同时显示图标和文本,如示例Image 所示 我可以将它们添加到下拉列表中,但在选择一个值后,图标会消失。

这是我的代码:

CSS:

.customer-info-sub-chooser-gold-icon 
    background-repeat: no-repeat;
    background-image: url('images/customer-info/sub-chooser-gold-icon.png');
    content: url('images/customer-info/sub-chooser-gold-icon.png');
    width: 80px;
    display: inline-block;
    background-position: 55px 2px;

分机:

xtype: 'combobox',
minHeight: 30,
name: 'contactType',
padding: '5 0 0 10',
displayField: 'name',
valueField: 'id',
queryMode: 'local',
isEditable: true,
allowBlank: false,
disabled: false,
columnWidth: 1 / 4,
store: Ext.create('Components.contacts.contactComponent.store.ChooserStore'),
    listConfig: 
        //test
        getInnerTpl: function (displayField) 
            return '<img src="customer-info-sub-chooser-gold-icon" class="icon"/> ' + displayField + '';
        
    

商店

Ext.define('Components.contacts.contactComponent.store.ChooserStore', 
    extend: 'Ext.data.Store',
    model: 'Processes.customerInfo.model.ComboBox',
    autoDestroy: true,
    proxy: "memory",
    data: [
        id: 'sub-chooser-gold-icon', name: "Chooser",
        id: 'sub-chooser-grey-icon', name: "Sub-chooser"
    ]
);

组合框模型:

Ext.define('Processes.customerInfo.model.ComboBox', 
    extend: 'Ext.data.Model',
  fields: [
    name: 'id', type: 'string',
    name: 'name', type: 'string'
  ]
);

谁能帮帮我?

注意:我必须通过cls"customer-info-sub-chooser-gold-icon"插入图标。

【问题讨论】:

【参考方案1】:

Working fiddle

你快到了,只需使用tplExt.view.BoundListViewxtype: 'combo')配置的选择器而不是getInnerTpl,如下所示:

listConfig: 
    tpl: '<tpl for="."><div class="x-boundlist-item"><img src="icon" class="icon"/>name</div></tpl>'

还阅读了有关使用 XTemplate 的一般信息。

【讨论】:

那么,我应该在组合框上使用 afterRender 调用该方法吗? 是的,你可以在afterrender事件处理程序中做到这一点。

以上是关于ExtJS ComboBox 列表,带有基于商店数据的图标和文本的主要内容,如果未能解决你的问题,请参考以下文章

在触发单击 Extjs 3.4 时重新加载 ComboBox 存储

存储加载后 extjs 4.0.7 中 Combobox 中的小错误

ExtJS ComboBox 不会显示项目

extjs 3.4 ComboBox 发送错误的数据类型

Extjs 组合框根据属性显示商店记录

在 Extjs 2.3.0 中创建商店实例