如何格式化extjs中的组合?

时间:2011-02-03 19:52:09

标签: extjs

我在ext js中有一个组合框,它是动态填充的。没有什么非常复杂......它正确填充。这是组合的显示值的结构:

Name: [dynamicName]
Gender : [dynamicGender]
Age: [dynamicAge]

目标是让名称:,性别:和年龄:在<b></b>标签内。动态值应为普通文本。 假设我定义了一个数组,我将从中填充组合的数据存储区。这是数组:

 var arr=[[id1, <b>Name:</b>],[id2, <b>Gender:</b>],[id3, <b>Age:</b>]]

事情就是当我点击列表中的下拉菜单时,它们显示正确。一旦用户选择了一个选项,让我们说在所选选项中的名称...,格式化就会出错。错误的意思是,粗体文字没有显示。而是显示字符串文字<b>Name:</b> dynamicName

我如何使用tpl语法来解决这个问题?

3 个答案:

答案 0 :(得分:2)

你可以用css解决这个问题。这是一种方式:

在组合框的配置中,添加:

itemCls: 'make-bold'

(或任何你想要的名字)

然后,在样式表中添加(使用相同的名称):

.make-bold input {
    font-weight: bold;
}

这将为您的输入框设置样式(在您从组合框中选择后显示的内容)粗体

答案 1 :(得分:1)

虽然选项列表由<div>元素组成,因此允许样式化,但字段本身只是<input>元素,而且这些元素不支持内容样式。

所以答案是:不,你不能。

扩展答案是:我很确定有人做了一个替代的组合框组件实现,它使用不同的HTML标记并允许在该字段中设置样式内容。尝试询问ExtJS论坛。

答案 2 :(得分:0)

我有类似的问题。我想在组合列表粗体中进行一些选择,但是当选择值时,我不希望输入中的HTML标记:

<强> 1。使用模板作为this tutorial说明,请参阅使用模板更改组合框项目的外观

或者

2.使用选择列表器和正则表达式。您可以在“选择”事件中添加一个侦听器,然后只需使用一些正则表达式来删除HTML标记,例如 /&lt; [^&gt;] *&gt; / g 从输入字段中删除HTML标记。现在,用于格式化列表的HTML不会影响输入。