我正在研究一个简单的PropertyGrid。如果我在设计时使用某个json对象设置source属性,它将正确显示。但是当我尝试动态设置源数据时,它不会显示数据。
这是我的代码:
ConceptPropertiesPanel = function() {
this.source = { ***// if i set source this way, it will work***
"(name)": "My Object",
"Created": new Date(Date.parse('10/15/2006')),
"Available": false,
"Version": .01,
"Description": "A test object"
};
ConceptPropertiesPanel.superclass.constructor.call(this, {
id: 'concetp-properties',
region: 'east',
title: 'Concept Properties',
autoScroll: true,
margins: '0 5 0 0',
split: true,
width: 250,
minSize: 250,
maxSize: 400,
collapsible: true,
source: {}
})
};
Ext.extend(ConceptPropertiesPanel, Ext.grid.PropertyGrid, {
setSourceData: function(data) { **//I want to set source when the below method is called, but not working**
this.setSource({
"(name)": "My Object",
"Created": new Date(Date.parse('10/15/2006')),
"Available": false,
"Version": .01,
"Description": "A test object"
});
}
});
这就是我调用'setSourceData'函数的方式。
var conceptPropertiesPanel = new ConceptPropertiesPanel();
conceptPropertiesPanel.setSourceData(data);
有人能告诉我代码中的问题在哪里吗?
答案 0 :(得分:2)
Here是您的演示代码。它按预期工作。您可能想要在调用conceptPropertiesPanel.setSourceData(data);
时检查是否存在任何JS错误,否则它应该工作!
答案 1 :(得分:0)
这里只是猜测,但是在对象已经初始化之后会设置Source,这需要您找到对象的更新update()
或doLayout()
以更新数据的表示
另一个选项是在原始函数调用中进行配置。类似的东西:
ConceptPropertiesPanel = function(config) {
this.source = config || { ***// if i set source this way, it will work***
"(name)": "My Object",
"Created": new Date(Date.parse('10/15/2006')),
"Available": false,
"Version": .01,
"Description": "A test object"
};