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

时间:2018-08-22 05:59:32

标签: extjs loading mask

在extjs上,显示了网格加载掩码,而没有任何外部调用setloading()。 是否会自动调用setloading()?

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

问题在于有时它会来了,而有时加载数据时却没有加载掩码。

因此,如果我从外部进行处理,则将出现两个加载蒙版。 如何禁用网格上的自动加载蒙版?

1 个答案:

答案 0 :(得分:2)

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