extjs - Ext JS GridPanel autoHeight 不适用于组展开折叠

标签 extjs gridpanel

在 gridPanel 上使用 autoHeight 属性以及分组功能时似乎存在缺陷。

当您将分组设置为 startCollapsed 时,网格的高度设置为折叠行的高度(这是正确的),但是当我展开组时,网格的高度不会更新,因此新内容会推送旧内容进入不可见区域。

您可以在 sensha 文档 http://docs.sencha.com/ext-js/4-0/#!/api/Ext.grid.Panel 上轻松复制该问题转到分组部分并粘贴以下代码:

var store = Ext.create('Ext.data.Store', {
    storeId:'employeeStore',
    fields:['name', 'senority', 'department'],
    groupField: 'department',
    data: {'employees':[
        { "name": "Michael Scott",  "senority": 7, "department": "Manangement" },
        { "name": "Dwight Schrute", "senority": 2, "department": "Sales" },
        { "name": "Jim Halpert",    "senority": 3, "department": "Sales" },
        { "name": "Kevin Malone",   "senority": 4, "department": "Accounting" },
        { "name": "Angela Martin",  "senority": 5, "department": "Accounting" }
    ]},
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            root: 'employees'
        }
    }
});

var groupingFeature = Ext.create('Ext.grid.feature.Grouping',{
        startCollapsed: true
    });

Ext.create('Ext.grid.Panel', {
    title: 'Employees',
    store: Ext.data.StoreManager.lookup('employeeStore'),
    columns: [
        { header: 'Name',     dataIndex: 'name' },
        { header: 'Senority', dataIndex: 'senority' }
    ],
    features: [groupingFeature],
    width: 200,
    autoHeight: true,
    renderTo: Ext.getBody()
});

我应该如何解决此问题并在展开或折叠项目时调整网格大小?

最佳答案

首先,网格(或任何组件)不支持 autoHeight 配置。

但该行为显然是一个错误,并且已在 Ext JS 4.1 中修复。

对于 4.0.7 中的解决方法,您可以显式强制布局在组展开/折叠时发生:

grid.getView().on({
    "groupexpand": function() {
        grid.doLayout();
    },
    "groupcollapse": function() {
        grid.doLayout();
    }
});

关于extjs - Ext JS GridPanel autoHeight 不适用于组展开折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9730688/

相关文章:

filter - Sencha Touch 过滤器 ListView 数据存储

angularjs - Angular 有像 extjs 那样的弹性布局吗?

extjs - 如何在rowBody中将面板添加到extjs网格面板

javascript - 由于本地存储代理,Extjs 网格面板最多显示 25 行。如何改变这个极限值呢?

sorting - ExtJs 网格中可排序为 false 后列标题显示箭头图标

javascript - 在不覆盖监听器的情况下正确扩展 ExtJS 组件

extjs - 如何初始化Ext.Direct?

javascript - 使用 css 格式化 div

extjs - 在extjs中动态更新记录中的字段

javascript - 将帮助按钮添加到 Extjs 网格面板标题