解决问题:
http://www.iteye.com/problems/22617
http://www.iteye.com/problems/22681
原问题是,需要在combo上显示一些HTML标签,如 <a/><TestTag>xxx</TestTag>
1. 如果简单的使用combo的话,会如下图

2. 换个思路,把store里面的东西转码下看看?
var c = new Ext.form.ComboBox({
fieldLabel: 'HTML标签',
displayField: 'name',
valueField: 'value',
mode: 'local',
triggerAction: 'all',
store: new Ext.data.SimpleStore({
fields: [{
name: 'name',
convert: function (v) {
return Ext.util.Format.htmlEncode(v);
}
},
'value'],
data: [['xx', '1'], ['<MyTag /> ', '2']]
})
})
发现还是出问题了,如图

问题的原因同学们可以看下Combo的setValue方法.
3. 于是我们可以看下Combo的源码,其实下拉列表就是一个DataView.
所以我们可以考虑在XTemplate这里做手脚
var c = new Ext.form.ComboBox({
fieldLabel:'HTML标签',
displayField:'name',
valueField:'value',
mode: 'local',
triggerAction: 'all',
store:new Ext.data.SimpleStore({
fields:['name','value'],
data:[['xx','1'],['<MyTag /> ','2']]
}),
//这里的values.name中的name就是displayField中的值,自己修改
tpl:'<tpl for="."><div class="x-combo-list-item">{[Ext.util.Format.htmlEncode(values.name)]}</div></tpl>'
})
如图,搞定:

//tz

被折叠的 条评论
为什么被折叠?



