Combobox显示格式,包含2个数据值

时间:2015-10-07 16:01:58

标签: javascript extjs extjs4

在我的extjs组合框中,我希望以

等格式显示2个值

例如。 value1 - value2

如果value2不存在,我希望它只显示没有短划线的值1

例如。值1

var combo = new Ext.form.field.ComboBox({
    // ...
    getInnerTpl : function() { 
         if ('{value2}' == null || '{value2}' == '') { // doesnt work..
            return '{value1}';
         } else {
            return '{value1} - {value2}';
         } 
     },
    // ...
});

2 个答案:

答案 0 :(得分:1)

您可以更改displayTpl

  

用于在文本中显示所选记录的模板   领域。一系列选定的记录'数据将传递给   模板。

例如:

displayTpl: [
    '<tpl for=".">',
    '{value1}{[values.value1 && values.value2 ? \' - \' : \'\']}{value2}',
    '<tpl if="xindex < xcount">,</tpl>',
    '</tpl>'
]

您可以使用itemTpl

更改绑定列表的listConfig
  

要渲染的项目模板的内部部分。跟着一个   XTemplate结构将放在tpl中。

例如:

listConfig: {
    itemTpl: '{value1}{[values.value1 && values.value2 ? \' - \' : \'\']}{value2}'
}

一个有效的例子: https://fiddle.sencha.com/#fiddle/v32

答案 1 :(得分:0)

看起来将displayTpl更改为以下工作基于@CD ..回答extjs 4.2

displayTpl: new Ext.XTemplate( '<tpl for=".">',
    '{value1}{[values.value1 && values.value2 ? \' - \' : \'\']}{value2}',
    '<tpl if="xindex < xcount">,</tpl>',
    '</tpl>')