EXTjs 操作组合框中显示的数据

Posted

技术标签:

【中文标题】EXTjs 操作组合框中显示的数据【英文标题】:EXTjs manipulate data displayed in a combobox 【发布时间】:2016-10-28 12:41:43 【问题描述】:

大家好,我进入了一个以前在 EXTjs 中完成的新项目,我对此很陌生,我正在努力完成任何事情。

我今天的问题是: 我有一个带有已定义 tpl 的面板,其中有几个函数可以操作 tpl 中的类(如果某个变量为真或假,则显示一个图标而不是另一个图标)。 现在我不得不将相同的逻辑翻译成一个组合框,我遇到了一些问题:

如果我使用tpl,我会获得相同的视觉结果,但我无法选择任何项目:

tpl: [
    '<tpl for=".">',
        '<div class="x-publisher [this.renderColor(values.visible)]">',
            '<div class="x-publisher-text">name</div>',
            '<div class="x-publisher-close fa [this.renderIcon(values.visible)]"></div>',
        '</div>',
    '</tpl>',
    '<div class="x-clear"></div>',
    
        disableFormats: true,
        renderColor: function(visible)
            return visible ? 'visible' : '';
        ,
        renderIcon: function(visible)
            return visible ? 'fa-eye-slash' : 'fa-eye'
        
    
],
itemSelector: 'div.x-publisher',
listeners: 
     select: 'somefunctioncalled'

,

我知道对于组合框,我必须使用 listconfig 和 itemtpl 东西,这样:

listConfig: 
        itemTpl: [
            '<div class="x-publisher visible"><div class="x-publisher-text">name</div><div class="x-publisher-close fa fa-eye"></div></div>'

                ]

                

但是这样做,我了解到我无法在 itemtpl 中定义任何函数... 所以,我的想法是在将 visible 变量传递给 itemtpl 之前对其进行操作。

商店是这样的:

store:  fields: [ name:'name' ,  name: 'id', persist: false ,  name: 'regionalId' ,  name:'visible', type: 'boolean'],
                                autoLoad: true,...

现在,是否有一种(简单的)方法可以将“可见”变量转换为字符串“可见”(如果它是真的)或者其他东西(如果它是假的)? 或者...有没有办法模拟第一个行为,我的意思是当我使用 itemTpl 时添加某种自定义函数(我了解到它们被称为成员函数)? 换图标也有问题,不过现阶段可以忽略。

你能帮帮我吗? 提前致谢。

【问题讨论】:

【参考方案1】:

我在 itemtpl 中使用了一些逻辑,似乎按预期工作:

itemTpl: [
            '<div class="x-publisher',
            '<tpl if="visible == true"> visible</tpl>',
            '"><div class="x-publisher-text">name</div><div class="x-publisher-close fa fa-eye"></div></div>'

        ]

【讨论】:

以上是关于EXTjs 操作组合框中显示的数据的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS组合框无法渲染

extjs 组合框在单击时显示空白列表

商店上的 extjs 组合框 getCount() 返回 0

从组合框中删除 extjs 3.4 中的参数

如何在组合框中就地更改显示字段

在 ExtJS 中获取组合框的值