Extjs网格属性更改侦听器无法正常工作

时间:2014-02-06 11:03:33

标签: extjs extjs4

我有一个属性网格......

Ext.create('Ext.grid.property.Grid', {
        id          : "PROPERTIES",
        autoHeight: true,
        width: 300,
        viewConfig : {
            forceFit: true,
            scrollOffset: 2 // the grid will never have scrollbars
        },
        listeners   :{
            propertychange:function(source,recordId,value,oldValue){
                alert(Ext.encode(source));
                alert(recordId);
                alert("new Value="+value);
            }
        },
        source  : {
            "title"         : "My Object",
            "color"         : Ext.Date.parse('10/15/2006', 'm/d/Y'),
            "Available"     : false,
            "Version"       : 0.01,
            "Description"   : "A test object"
        }
    });

我的查询

当“源”中的任何值发生变化时,我需要一个侦听器来捕获更改。 假设用户试图将“标题”从“我的对象”更改为“标题1”。我怎样才能抓住新的“头衔”。

注意:在这个网格中我给了一个监听器“propertychange”。但没效果!

请帮我解决这个问题。 感谢

1 个答案:

答案 0 :(得分:1)

setSource方法设置包含属性数据的整个源数据对象。

如果您只想更改某些属性值,则应使用setProperty方法设置属性的值并触发propertychange事件:

Ext.create('Ext.button.Button', {
    handler: function() {
        Ext.getCmp("PROPERTIES").setProperty("title", "Tikgh");
    },
    text: "Change Source",
    renderTo: Ext.getBody()
});

摆弄实例: https://fiddle.sencha.com/#fiddle/3ct