激活和paintied在ext js中不起作用

Posted

技术标签:

【中文标题】激活和paintied在ext js中不起作用【英文标题】:activate and paintied is not working in ext js 【发布时间】:2020-06-18 11:44:58 【问题描述】:

分机中有一个网格列表页面。

查看:

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");
    

所有的点击功能在这个控制器中工作正常。 激活、绘制都不起作用。 加载网格页面时,我无法控制此激活功能。所以没有初始化加载这个网格。所以任何激活的解决方案,涂漆的操作系统不正确或其他任何使用负载的方法?任何人都可以建议。

【问题讨论】:

你用的是extjs还是sencha-touch框架,什么版本? 【参考方案1】:

在 ExtJs 经典工具包中: Ext.container.Container 的 'activate' 事件 “仅当此组件是使用 Ext.layout.container.Card 作为其布局的 Ext.container.Container 的子级或此组件是浮动组件时才会触发此事件。 ”。您没有在组件中使用卡片布局。 我在 Sencha Touch 中发现了“painted”事件,但同时 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
        ,

    );
,
...
...

【讨论】:

以上是关于激活和paintied在ext js中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Ext.getCmp 在 extjs 中不起作用

ExtJS3 快速提示在 IE9 中不起作用

激活参数在 GridSearch 中不起作用

自定义激活电子邮件在 Django 中不起作用

更改侦听器在 extjs 中不起作用

“el”监听器在 Sencha Touch 2 中不起作用