ExtJS PropertyGrid - Динамично задаване на източник

Работя върху прост PropertyGrid. Ако задам свойството източник с някакъв 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);

Може ли някой да ми каже къде е проблемът в кода?


person Community    schedule 10.07.2009    source източник


Отговори (2)


Ето вашия код с демонстрация. Работи според очакванията. Може да искате да проверите дали има някакви JS грешки, когато извиквате conceptPropertiesPanel.setSourceData(data);, в противен случай би трябвало да работи!

person Amol Katdare    schedule 31.08.2011

Само предположение тук, но това би било настройка на източника, след като обектът вече е инициализиран, което ще изисква от вас да намерите актуализацията на обекта до 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"
};
person Steve -Cutter- Blades    schedule 13.07.2009
comment
Опитах да използвам doLayout(), но не работи. Също така с горния код. но същото поведение. Има ли алтернативен начин за постигане на необходимата функционалност. - person ; 22.07.2009