Иконка В ExtJS Combo
Как отобразить значок вместе с полем отображения в ExtJS Combo.Есть ли расширение для extjs combo. Пожалуйста обеспечьте некоторые образцы.
4 ответов
передать этот :
для ExtJS4 добавьте listConfig с методом getInnerTpl в combobox:
xtype: 'combobox',
anchor: '100%',
listConfig: {
getInnerTpl: function(displayField) {
return '<img src="/images/icons/{id}.png" class="icon"/> {' + displayField + '}';
}
},
name: 'type',
fieldLabel: 'Group Type',
displayField: 'label',
hiddenName: 'type',
queryMode: 'local',
store: 'group.Types',
valueField: 'id'
другой способ, я думаю, можно улучшить, но работает нормально для меня:
,store: new Ext.data.ArrayStore({
id: 0,
fields: [
'lang', 'desc','url'
],
data: [['CA','Spanish','es.gif'],['VA','Valencian','va.gif']]
})
,tpl : '<tpl for=".">'+
'<tpl if="0==0"><div class="x-combo-list-item" ><img src="../img/{url}"> {desc}</div></tpl>'+
'</tpl>'
здесь вы можете посмотреть как отобразить значок с интерактивными функциями. Я использую getInnerTpl для изменения строк tpl внутри комбо. При создании нового tpl я могу изменить html, чтобы он включал класс css, который загружает во время выполнения значок, который я хочу
comboBox = Ext.create('Ext.form.ComboBox', {
cls: 'fancy',
itemId: 'itemId',
store: store,
displayField: 'displayField',
valueField: 'InstanceId',
editable: false,
padding: '5 4 0 0',
queryMode: 'local',
lastQuery: '',
listConfig: {
maxHeight: 85,
getInnerTpl: function (displayField) {
scope: me;
var tpl = '<tpl for=".">'
+ '<div data-qtip={' + displayField + '}>'
+ '<div class="ItemClickSigh">{' + displayField + '}</div>'
+ '<div style="display: inline-block; float: right;">'
+ '<div class="EditIcon"></div> '
+ '</div>'
+ '</div>'
+ '</tpl>';
return tpl;
},
listeners: {
itemclick: function (list, record, item, index, e) {
scope: me;
me.hendlerComboItemClicked(record, e);
},
itemmouseenter: function (cmb, record, item, index, e, eOpts) {
scope: me;
me.hendlerComboItemMouse(item, 'visible');
},
itemmouseleave: function (cmb, record, item, index, e, eOpts) {
scope: me;
me.hendlerComboItemMouse(item, 'hidden');
}
}
}
});
Css:
.IA_EditIcon {
background-image: url('url')!important;
background-repeat:no-repeat;
width:16px;
height:16px;
cursor: pointer;
margin-right: 5px;
margin-bottom: 0px;
float: left;
display: inline;
visibility: hidden;
}