首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Selectfield侦听器在视图初始化时触发

Selectfield侦听器在视图初始化时触发
EN

Stack Overflow用户
提问于 2014-02-19 13:57:09
回答 1查看 539关注 0票数 1

这是有点难以解释,所以我正在尽我最大的努力,如果我的问题是模糊的,请要求更清楚。

我正在用商店里的选项填充一个选择字段。此表单显示在用户单击“我的一般列表”中的行时获取的详细视图上。一切都完美无缺。

我在push()中使用record.data将相关数据传递给细节视图,并使用初始化侦听器捕获该数据,并在细节视图(标题、表单等)上填充一些项。

我的selectfield有一个更改监听器,用于在字段更改后执行ajax请求。所发生的情况是,我的selectfield首先从存储加载选项,然后调用初始化监听器。

每次加载视图时都会产生ajax请求。因为我的初始化监听器更改了selectfield以显示另一个选项为active,因此selectfield认为某些内容已经更改,并触发了更改侦听器。

在不触发更改侦听器的情况下,将selectfield选项设置为active的最佳方法是什么?

带有更改侦听器的选择字段:

代码语言:javascript
复制
xtype: 'selectfield',
itemId:'groundtype',
displayField: 'ground_name',    
valueField: 'ground_id',
store: 'groundTypeStore',
listeners: {
    change: function (data) {
        // execute ajax request on change
    }
}

窗体面板(详细视图)初始化侦听器

代码语言:javascript
复制
listeners: 
{
    initialize: function(){
        var value = this.config.record;

        if(value != null){
            this.down('#groundtype').setValue(value.groundtype);

        }
    }
}

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-19 16:29:46

可以使用suspendEvents函数在设置值的同时挂起字段的事件:

代码语言:javascript
复制
var field = this.down('#groundtype');
field.suspendEvents();
field.setValue(value.groundtype);
field.resumeEvents(true);

注意,您需要将true传递给resumeEvents,以便丢弃排队事件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21882647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档