активировать и раскрашивать не работает в ext js - PullRequest
0 голосов
/ 18 июня 2020

В доп. Есть страница со списком сетки.

Просмотр:

Ext.define('App.view.client.ClientListView', {
    extend      : 'Ext.container.Container',
    xtype       : 'client-list',
    controller   : 'client',
    items:
    [
        {
            xtype   : 'panel',
            title   : 'Clients List',
            items   :
            [
                {
                    xtype       : 'grid',

                    columns: [
                        {
                            text        :'Mobile Number',
                            dataIndex   : 'mobile',
                          },
                        {
                            text        :'Email',
                            dataIndex   : 'email',
                          }
                     ],
                    store:Ext.create('dialgod.store.ClientStore'),
                    dockedItems:
                    [
                        {
                            xtype        : 'pagingtoolbar',
                            dock         : 'bottom',
                            displayInfo  : true
                        },
                        {
                            xtype     : 'toolbar',
                            height    : 50,
                            docked    : 'top',
                            items     :
                            [
                                {
                                    xtype    : 'button',
                                    text     : 'Add Client',
                                    name     : 'btn_add_client',
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]

});

контроллер:

Ext.define('App.controller.ClientController', {
extend: 'Ext.app.ViewController',
alias: 'controller.client',
init: function() {
    this.control({
        'client-list':
        {
            activate    : this.loadClientsList,
            painted     : this.loadClientsList
        },
        'client-list button[name=btn_add_client]':{
            click   : this.AddClientForm
        },

    });
},

loadClientsList: function(listObj)
{
    console.log("loading client");
    var storeObj    = listObj.down("grid").getStore();
    storeObj.load();
},


AddClientForm : function(){
    console.log("client add form clicked");
    }

все функция щелчка работает нормально в этом контроллере. активировать, нарисовать оба не работают. Я не могу использовать эту функцию активации при загрузке страницы сетки. поэтому нет инициализации для загрузки этой сетки. так что любое решение для активации, окрашенная ОС не правильная или что-то еще для использования нагрузки? кто-нибудь может подсказать пожалуйста.

1 Ответ

1 голос
/ 18 июня 2020

В Ext Js classi c toolkit: событие 'activate' для Ext.container.Container "Это событие запускается только в том случае, если этот Компонент является дочерним по отношению к Ext.container.Container, который использует Ext.layout. container.Card в качестве макета или этот Компонент является плавающим Компонентом. ". Вы не используете макет карты в Компоненте. «нарисованное» событие я нашел в Sencha Touch, но в то же время Ext.container.Container не является классом sencha touch. В любом случае, вы можете использовать события render или show (grid.show () / hide ()) для загрузки вашего магазина. Ваш контроллер будет иметь следующий вид:

...
...
init: function() {
    this.control({
        'client-list':
        {
            render: this.loadClientsList,
            //show: this.loadClientsList fires in case of visual show/hide
        },
        'client-list button[name=btn_add_client]':{
            click   : this.AddClientForm
        },

    });
},
...
...
...