ExtJS PropertyGrid - динамически устанавливаемый источник - PullRequest
1 голос
/ 10 июля 2009

Я работаю над простой PropertyGrid. Если во время разработки я установил свойство source с помощью некоторого объекта json, оно отображается правильно. Но когда я попытался установить исходные данные динамически, они не отображаются.

Это мой код:

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);

Может кто-нибудь сообщить мне, где проблема в коде?

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

Здесь - ваш код с демонстрацией. Работает как положено. Возможно, вы захотите проверить, есть ли какие-либо ошибки JS при вызове conceptPropertiesPanel.setSourceData(data);, в противном случае он должен работать!

0 голосов
/ 14 июля 2009

Здесь только предположение, но это будет установка 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"
};
...