Как использовать плагин ExtJS «Расширитель строк» ​​с сеткой MODx

Я создаю дополнение для MODx Revolution 2.2.x, которое использует ExtJS 3.4 в качестве внешнего интерфейса. У меня есть сетка, с которой мне нужно использовать плагин ExtJS "Row Expander", но я не уверен, как перевести предоставленный пример http://dev.sencha.com/deploy/ext-3.4.0/examples/grid/grid-plugins.html (Это первый пример сетки) в синтаксис MODExt.

Я думаю, что моя главная проблема заключается в том, что в примере используется локальное хранилище, а не шаблоны классов, как это делает MODx.

Вот базовая примерная сетка, в которую я пытаюсь добавить плагин:

Example.grid.Artworks = function(config) {
    config = config || {};
    Ext.applyIf(config,{
        id: 'example-grid-artworks'
        ,url: Example.config.connectorUrl
        ,baseParams: { action: 'mgr/example/getListArtworks' }
        ,fields: ['id','name','description','menu']
        ,paging: true
        ,pageSize: 5
        ,remoteSort: true
        ,autoExpandColumn: 'description'
        ,columns: [{
            header: _('id')
            ,dataIndex: 'id'
        },{
            header: _('example.artwork_name')
            ,dataIndex: 'name'
        },{
            header: _('example.artwork_desc')
            ,dataIndex: 'name'
        }]
    });
    Example.grid.Artworks.superclass.constructor.call(this,config)
}
Ext.extend(Example.grid.Artworks,MODx.grid.Grid);
Ext.reg('example-grid-artworks',Example.grid.Artworks);

Мы будем очень признательны за любое понимание того, как включить плагин с коннектором MODx и baseParams.

Заранее спасибо.


person Muzzstick    schedule 20.03.2014    source источник


Ответы (1)


Хорошо, мне удалось это решить. Я оставлю это здесь, если кто-то еще столкнется с той же проблемой.

Example.grid.Artworks = function(config) {
    config = config || {};

    // ---- This gets added here ------
    this.exp = new Ext.grid.RowExpander({
        tpl : new Ext.Template(
            '<p>{expandedcontent}</p>'
        )
    });

    Ext.applyIf(config,{
        id: 'example-grid-artworks'
        ,url: Example.config.connectorUrl
        ,baseParams: { action: 'mgr/example/getListArtworks' }
        // added the expanded content field here.
        ,fields: ['id','name','description','expandedcontent','menu']
        ,paging: true
        ,pageSize: 5
        ,remoteSort: true
        ,autoExpandColumn: 'description'
        ,plugins: [this.exp] // <---- add this here
        ,columns: [this.exp,{ // <----- add this here
            header: _('id')
            ,dataIndex: 'id'
        },{
            header: _('example.artwork_name')
            ,dataIndex: 'name'
        },{
            header: _('example.artwork_desc')
            ,dataIndex: 'name'
        }]
    });
    Example.grid.Artworks.superclass.constructor.call(this,config)
}
Ext.extend(Example.grid.Artworks,MODx.grid.Grid);
Ext.reg('example-grid-artworks',Example.grid.Artworks);
person Muzzstick    schedule 21.03.2014