extjs显示html页面,ExtJS Combo 下拉列表正常显示HTML标签内容

解决问题:

原问题是,需要在combo上显示一些HTML标签,如 xxx

1. 如果简单的使用combo的话,会如下图

3bb0ea64-1b1e-3ff8-93ea-32a01a1e3f34.jpg

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'], [' ', '2']]

})

})

发现还是出问题了,如图

bbdd6c97-2b7f-347d-b7be-0d23808e6d3a.jpg

问题的原因同学们可以看下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'],[' ','2']]

}),

//这里的values.name中的name就是displayField中的值,自己修改

tpl:'

{[Ext.util.Format.htmlEncode(values.name)]}
'

})

如图,搞定:

140046f3-428e-3f9d-abe1-3e00fb08b354.jpg

//tz

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值