EXT-JS PropertyGrid лучшие практики для достижения обновления? - PullRequest
1 голос
/ 13 мая 2010

Я использую EXT-js для проекта, обычно все довольно просто с EXT-js, но с propertyGrid я не уверен. Я хотел бы дать несколько советов по поводу этого куска кода.

Сначала магазин, чтобы заполнить сетку свойств, на событие загрузки:

 var configStore = new Ext.data.JsonStore({
        // store config
     autoLoad:true,
        url: url.remote,
        baseParams : {xaction : 'read'},
        storeId: 'configStore',
        // reader config
        idProperty: 'id_config',
        root: 'config',
     totalProperty: 'totalcount',
        fields: [{
            name: 'id_config'
        }, {
            name: 'email_admin'
        }
  , {
            name: 'default_from_addr'
        }
  , {
            name: 'default_from_name'
        }
  , {
            name: 'default_smtp'
        }
  ],listeners: {
            load: {
                fn: function(store, records, options){
                    // get the property grid component
                    var propGrid = Ext.getCmp('propGrid');
                    // make sure the property grid exists
                    if (propGrid) {
                        // populate the property grid with store data
                        propGrid.setSource(store.getAt(0).data);
                    }
                }
            }
        }

    });

вот свойствоСетка:

 var propsGrid = new Ext.grid.PropertyGrid({
        renderTo: 'prop-grid',
     id: 'propGrid',
        width: 462,
        autoHeight: true,
        propertyNames: {
            tested: 'QA',
            borderWidth: 'Border Width'
        },
        viewConfig : {
            forceFit: true,
            scrollOffset: 2 // the grid will never have scrollbars
        }
    });

Пока все хорошо, но следующей кнопкой я вызову обновление старой школы, и мой вопрос:

Это правильный способ обновления этого компонента? Или лучше использовать редактор? или что-то еще ...

для обычной сетки Я использую методы магазина для обновления, удаления и т. Д. *

Примеров действительно мало на этом! Даже в книгах о ext-js!

 new Ext.Button({
        renderTo: 'button-container',
        text: 'Update',
        handler: function(){

    var grid = Ext.getCmp("propGrid");  

                     var source = grid.getSource();  

                     var jsonDataStr = null;  

                     jsonDataStr = Ext.encode(source);  

     var requestCg = {  
                             url : url.update,  
                             method : 'post',  
                             params : {  
                                 config : jsonDataStr , xaction : 'update'
                             },  
                             timeout : 120000,  
                             callback : function(options, success, response) {  
                                 alert(success + "\t" + response);  
    }
   };
    Ext.Ajax.request(requestCg);   
        }
    });

и спасибо за чтение.

1 Ответ

1 голос
/ 13 мая 2010

Это должно быть хорошо. PropertyGrid и вспомогательные классы были включены в Ext ранее, даже до появления многих классов в текущем пространстве имен Ext.data. *. Он никогда не обновлялся полностью, чтобы соответствовать API, доступным в других стандартных классах данных. На самом деле PropertyGrid использует простой Ext.data.Store для хранения своих данных, но типичные методы и события хранилища не отображаются. Таким образом, вам придется либо обойтись с getSource(), либо начать делать какое-то серьезное переопределение.

...