Jav*_*hez 10 html combobox extjs extjs4
你好,我有下一个问题,我想在一个组合框中渲染我的显示值的html,当我加载一个准备好html的商店时,它在我显示所有这些时呈现html,但是当我选择一个时,它显示了HTML.
当项目被选中时,我该怎么做才能呈现html?
以下是一些有助于解释不便之处的图片:
这是我要选择一个
http://i.stack.imgur.com/TcfRA.jpg
这是我选择一个
http://i.stack.imgur.com/Kzi9r.jpg
我正在渲染的Html是下一个:
<img class="io_img" src="/files/images/io-P.gif"/><div class="io_desc">hola</div></div>
Run Code Online (Sandbox Code Playgroud)
提前致谢.
PD:很抱歉没有显示图片,只显示链接,但我没有足够的声誉来直接显示图片.
Krz*_*tof 16
这需要很少的步骤.问题是ComboBox
下面有输入字段,输入无法显示html.所以第一步是更改用div替换输入的模板.例如:
fieldSubTpl: [
'<div class="{hiddenDataCls}" role="presentation"></div>',
'<div id="{id}" type="{type}" ',
'<tpl if="size">size="{size}" </tpl>',
'<tpl if="tabIdx">tabIndex="{tabIdx}" </tpl>',
'class="{fieldCls} {typeCls}" autocomplete="off"></div>',
'<div id="{cmpId}-triggerWrap" class="{triggerWrapCls}" role="presentation">',
'{triggerEl}',
'<div class="{clearCls}" role="presentation"></div>',
'</div>',
{
compiled: true,
disableFormats: true
}
]
Run Code Online (Sandbox Code Playgroud)
然后更改显示所选值的模板:
displayTpl: Ext.create('Ext.XTemplate', [
'<tpl for=".">',
'<img src="http://phpbb3.pl/adm/images/icon_edit.gif" />',
'{[typeof values === "string" ? values : values["title"]]}',
'</tpl>'
])
Run Code Online (Sandbox Code Playgroud)
另一件事是创建新的列表项模板.例如:
listConfig: {
getInnerTpl: function() {
return '<div class="search-item">' +
'<h3><img src="http://phpbb3.pl/adm/images/icon_edit.gif" /><span>{[Ext.Date.format(values.lastPost, "M j, Y")]}<br />by {author}</span>{title}</h3>' +
'{excerpt}' +
'</div>';
}
}
Run Code Online (Sandbox Code Playgroud)
最后一件事 - 您必须确保将值正确设置为div.为此你应该覆盖setRawValue
方法:
setRawValue: function(value) {
var me = this;
value = Ext.value(value, '');
me.rawValue = value;
// Some Field subclasses may not render an inputEl
if (me.inputEl) {
// me.inputEl.dom.value = value;
// use innerHTML
me.inputEl.dom.innerHTML = value;
}
return value;
}
Run Code Online (Sandbox Code Playgroud)
请注意,新模板不包含任何input
字段,因此不会提交值.如果你需要使用这样的组合形式,你应该在某处添加隐藏的输入fieldSubTpl
并为其设置值setRawValue
.
工作样本:http://jsfiddle.net/lolo/8Xs5h/1/