Extjs4 Mvc网格从控制器添加自定义插件

时间:2013-05-30 14:59:56

标签: asp.net-mvc extjs extjs4

我有一个问题......我在客户端使用sencha架构师,在服务器端使用asp.net Mvc。我想在控制器的网格中使用自定义插件,因为使用sencha架构师我无法添加自定义插件。我怎么能做到这一点。对不起我的英文

2 个答案:

答案 0 :(得分:0)

这是一个如何做到这一点的例子;希望你能从这里解决这个问题:

Ext.define('BS.app.TabController', {   
    extend: 'Ext.app.Controller',

    viewConfig: {
        plugins: [{
            ptype: 'formeditor',
            store: 'Groups'
        },{
            ptype: 'formtooltips'
        }]    
    },

    init: function()
    {
        this.callParent();

        // The dynamically created view is stored as a property
        this.view = this.getView(this.views[0]).create( this.viewConfig );        
    },
});

答案 1 :(得分:0)

感谢您的帮助,但我需要在控制器的网格中添加插件。如果我用这个:

  Ext.define('MyApp.controller.ArticoliListaController', {
    extend: 'Ext.app.Controller',
    stores: ['ArticoloStore'],
    models: ['articoloData'],
    views: ['articoli.ListaArticoli'],
    viewConfig: {
        plugins: [{
            ptype: 'filterbar',
            renderHidden: false,
            showShowHideButton: true,
            showClearAllButton: true
        }]
    },
    init: function () {
       // this.view = this.getView(this.views[0]).create(this.viewConfig);
        this.control(
                {

                    '#listaArticoli #btnInserisci':
                    {
                        click: this.inserisciClick
                    },
                    '#listaArticoli #grdListaArticoli': {

                        afterrender: function (gridview) {
                            Ext.getCmp("listaArticoli").down("#grdListaArticoli").getStore().load();
                            Ext.getCmp("listaArticoli").down("#grdListaArticoli").create(this.viewConfig);//not work                        },
                        celldblclick: function (tableview, td, cellIndex, record, tr, rowIndex, e, eOpts) {
                            Ext.create('MyApp.view.articoli.InsArticoli', { rIx: rowIndex }).show();
                        }

                    }

                });

    },

    inserisciClick: function (e) {
        Ext.create('MyApp.view.articoli.InsArticoli').show();
    }
});

代码不起作用。它会错的,因为我不使用......  我试过了:

......
    '#listaArticoli #grdListaArticoli': {
                            afterrender: function (gridview) {
                                getWin("listaArticoli", "#grdListaArticoli").getStore().load();

                                var filterRow = new Ext.ux.grid.FilterBar({
                                    ptype: 'filterbar',
                                    renderHidden: false,
                                    showShowHideButton: true,
                                    showClearAllButton: true
                                });


                                filterRow.init(gridview);
                                gridview.plugins.push(filterRow);
                            },
    ....

但是我从日志中收到了一个错误“Uncaught TypeError:无法调用未定义的方法'push'”。我不明白