ext icon combobox


.ux-icon-combo-input {
padding-left: 25px;
}

.x-form-field-wrap .ux-icon-combo-icon {
top: 3px;
left: 5px;
}

.ux-icon-combo-item {
background-repeat: no-repeat ! important;
background-position: 3px 50% ! important;
padding-left: 24px ! important;
width:120px;
height:30px;
}




Ext.ux.IconCombo = Ext.extend(Ext.form.ComboBox, {
initComponent:function() {

Ext.apply(this, {
tpl: '<tpl for=".">'
+ '<div class="x-combo-list-item ux-icon-combo-item '
+ '{' + this.iconClsField + '}">'
+ '{' + this.displayField + '}'
+ '</div></tpl>'
});

// call parent initComponent
Ext.ux.IconCombo.superclass.initComponent.call(this);

}, // end of function initComponent

onRender:function(ct, position) {
// call parent onRender
Ext.ux.IconCombo.superclass.onRender.call(this, ct, position);

// adjust styles
this.wrap.applyStyles({position:'relative'});
this.el.addClass('ux-icon-combo-input');

// add div for icon
this.icon = Ext.DomHelper.append(this.el.up('div.x-form-field-wrap'), {
tag: 'div', style:'position:absolute'
});
}, // end of function onRender

setIconCls:function() {
var rec = this.store.query(this.valueField, this.getValue()).itemAt(0);
if(rec) {
this.icon.className = 'ux-icon-combo-icon ' + rec.get(this.iconClsField);
}
}, // end of function setIconCls

setValue: function(value) {
Ext.ux.IconCombo.superclass.setValue.call(this, value);
this.setIconCls();
} // end of function setValue
});

// register xtype
Ext.reg('iconcombo', Ext.ux.IconCombo);


使用:


var severityComboStore= new Ext.data.JsonStore({
root:'rows',
fields:['key','value','icon'],
data : {
'rows':[
{key:'',value:'严重等级:所有',icon:''},
{key:'CRITICAL',value:'严重等级:严重',icon:'criticalIcon'},
{key:'WARNING',value:'严重等级:告警',icon:'warningIcon'},
{key:'UNKNOW',value:'严重等级:未知',icon:'unknowIcon'}
//,{key:'ok',value:'正常',icon:'okIcon'}
]
}
})

{
xtype : "iconcombo",
editable : false,
id : 'eventStateCombo',
mode : 'local',
triggerAction : "all",
emptyText : '事件状态',
store :eventStateComboStore,
value:'4',
valueField:'key',
displayField : 'value',
iconClsField: 'icon',
listeners:{
"beforeselect":filterEventState //选择事件状态过滤
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值