没有在 extjs 网格上应用任何加载掩码,它仍然显示。是自动调用的吗?

Did not apply any loading mask on extjs grid, still it shows up. Is it automatically called?

在没有任何外部调用 setloading() 的情况下显示 extjs 网格加载掩码。 setloading() 是自动调用的吗?

没有对 setloading() 进行任何调用,想知道它如何以及何时自动处理?

问题是它有时会来,有时会加载数据而没有加载掩码。

因此,如果我在外部处理它,则会出现两个加载掩码。 如何禁用网格上的自动加载遮罩?

我想你在哪里检查错误的组件。您应该检查视图上的 loadMask。

gridpanel(别名:grid)是一个包含gridview(别名:tableview)的面板 树也一样 树面板是包含树视图的面板

您可以通过在视图上将 loadMask 变量设置为 false 来禁用屏蔽(对于 gridpanel 和 treepanel)参见 docs

在viewConfig中设置即可配置

示例:

var store = Ext.create('Ext.data.Store', {
    storeId: 'simpsonsStore',
    fields:[ 'name', 'email', 'phone'],
    data: [
        { name: 'Lisa', email: 'lisa@simpsons.com', phone: '555-111-1224' },
        { name: 'Bart', email: 'bart@simpsons.com', phone: '555-222-1234' },
        { name: 'Homer', email: 'homer@simpsons.com', phone: '555-222-1244' },
        { name: 'Marge', email: 'marge@simpsons.com', phone: '555-222-1254' }
    ]
});

grid = Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    store: store,
    viewConfig: {  //this config is passed to the view
        loadMask: false
    },
    columns: [
        { text: 'Name', dataIndex: 'name' },
        { text: 'Email', dataIndex: 'email', flex: 1 },
        { text: 'Phone', dataIndex: 'phone' }
    ],
    height: 200,
    width: 400,
    renderTo: Ext.getBody()
});

//You can access the view in code by:
view = grid.getView()

如果您不设置该变量,它将使用默认值创建一个 Ext.LoadMask。因此,如果您想找出原始 loadMask 未显示有什么问题,您应该调试 onBeforeLoad。那应该调用下面的 maybeShow 方法。而这又应该调用 show 方法(稍微低一点)