如何在EXTJS中删除特定行的摘要分组

7fyelxc5  于 2022-09-26  发布在  其他
关注(0)|答案(2)|浏览(142)

如果我在网格中应用groupField属性并存储,extjs将自动按groupFields对记录进行排序。
例如:http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/group-summary-grid.html,它使用“project”作为groupField。
我的问题是如何将不属于任何组的额外行添加到带有groupField的网格中。(例如:http://i59.tinypic.com/30s973l.jpg

dw1jzc5e

dw1jzc5e1#

默认情况下,为groupField中的每个值创建组,也为空groupField创建组(但首先显示)。如果这对你来说足够了,那么你不必做任何事。
提琴:http://jsfiddle.net/tme462tj/
当你想在附加的图像上有类似的行为时,就必须做一些工作。要在末尾输入空值,可以为模型字段创建convert函数(例如:convert: function(v) { return v ? v : defaultDepartment; })。如果要隐藏此空组的标题和摘要,可以将事件侦听器附加到viewready事件,并使用样式隐藏它们:

viewready: function() {
    var els = this.getEl().query('.x-grid-group-hd');
    els = Ext.Array.filter(els, function(e) { return e.textContent.trim() == defaultDepartment; });

    if (els.length !== 1) {
        return;
    }
    var header = Ext.fly(els[0]);
    header.setStyle('display', 'none');

    var summary = header.up('.x-group-hd-container').down('.x-grid-row-summary');
    if (summary) {
        summary.setStyle('display', 'none');
    }
}

提琴:http://jsfiddle.net/hdyokgnx/1/

e3bfsja2

e3bfsja22#

根据我对已接受解决方案的评论,此修订使分组标题在网格视图期间永久隐藏。
这解决了我需要一个分组网格,但其中一个组没有组标题行的问题。

store.load
({
    params      :
    {
         arg1   : 1
        ,arg2   : '2'
    }

    ,callback   : function( records, operation, success )
    {
        var els = me.theGrid.getEl().query('.x-grid-group-hd');
        els = Ext.Array.filter( els, function(e)
        {
            return e.textContent.trim().includes( "***A SUBSTRING IN GROUPING FIELD***" );
        });

        if (els.length !== 1)
        {
            return;
        }

        var header = Ext.fly(els[0]);
        header.setStyle('display', 'none');

        var summary = header.up('.x-group-hd-container').down('.x-grid-row-summary');
        if (summary)
        {
            summary.setStyle('display', 'none');
        }
    }
});

相关问题