ExtJs组合框显示字段编码
ExtJs Combobox displayField encoding
我有一个java web应用程序。我有一个实体类(当然在转换之后),我想在带有ExtJs的组合框中使用它。我的问题如下:
displayField中可能存在具有html代码的条目。因此,在使用flexjson进行序列化的过程中。JSONSerializer我使用了flexjson。HTMLEncoder使条目在下拉列表中可见(在它使屏幕因未终止的字符串文字而关闭之前)。到目前为止还不错。
editor.myCombo = new Ext.form.ComboBox({
mode: 'local',
editable: false,
forceSelection: true,
triggerAction: 'all',
store: new Ext.data.JsonStore({
fields: ['myId', 'myName'],
emptyItem: {'myName' : '...'},
data: <c:out value="${form.json['myList']}" escapeXml="false"/>
}),
disabled: isEditorDisabled,
width: 75,
listWidth: 160,
displayField: 'myName',
valueField: 'myId'
});
但是,当我从下拉列表中选择一个项目时(所有项目都像Alfred </script>
一样正确显示),显示字段将显示为:Alfred </script>
。
我该怎么做?为什么它显示编码版本(在json请求中检索)而不是HTML?
尝试在配置中包含一个重写的getDisplayValue
方法。只需将其设置为返回解码值,如下所示:
editor.myCombo = new Ext.form.ComboBox({
mode: 'local',
editable: false,
forceSelection: true,
triggerAction: 'all',
store: new Ext.data.JsonStore({
fields: ['myId', 'myName'],
emptyItem: {'myName' : '...'},
data: <c:out value="${form.json['myList']}" escapeXml="false"/>
}),
disabled: isEditorDisabled,
width: 75,
listWidth: 160,
displayField: 'myName',
valueField: 'myId',
// this should return the decoded string instead
getDisplayValue: function() {
return Ext.String.htmlDecode(this.value);
}
});
之所以必须这样做,是因为Ext.form.field.Combo
的实际字段部分实际上是一个HTML输入元素,它只会显示直接的文本,而不会从中生成HTML
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 编码为深度嵌套对象的 HTML 字段 json
- Javascript编码/解码字段
- ExtJs组合框显示字段编码
- 访问jQuery中Html编码的字段值
- 如何对此 javascript 函数进行编码以在选择特定类型时显示两个 + 字段集
- JavaScript编码字段,而不会破坏显示
- 如何对多个字段进行地理编码
- 传单地理编码和可拖动标记在输入字段中显示结果
- 将存储中的特定字段编码为JSON
- 如何在编码对象时过滤额外的字段
- 标签字段与html编码的displayField在Extjs 6
- 如何通过ajax传递隐藏字段值到编码器控制器
- Xpages:如何使用客户端JS获得一个字段的句柄,但没有硬编码?(像这样的)
- 捕获 MyScript Katex 注释编码字段,以便在其他地方使用
- 使用角度将字符串中的隐蔽编码 HTML 转换为输入字段的纯文本