【问题标题】:Did not apply any loading mask on extjs grid, still it shows up. Is it automatically called?没有在 extjs 网格上应用任何加载掩码,它仍然显示。它会自动调用吗?
【发布时间】:2018-08-22 16:13:48
【问题描述】:

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

没有调用 setloading(),想知道它是如何以及何时自动处理的?

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

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

【问题讨论】:

  • 提及 ext 的版本会很有用,但我的回答适用于所有 ext 版本 >= 4.0

标签: extjs loading mask


【解决方案1】:

我认为你在哪里检查了错误的组件。您应该检查视图上的 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 方法(稍微低一点)

【讨论】:

    猜你喜欢
    • 2012-08-26
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    相关资源
    最近更新 更多