【问题标题】:ExtJS 4.2.3 Grouping BugExtJS 4.2.3 分组错误
【发布时间】:2015-01-13 04:09:33
【问题描述】:

我正在使用 store.group() 为用户提供按各种字段对网格进行分组的选项。 在遇到 4.2.1 中的许多错误之后,现在使用 extjs4.2.3,store.group() 似乎根本不起作用。 如何复制: 按下“分组”按钮,该按钮应该对网格进行分组。只对数据进行排序。 从列菜单中选择“按此字段分组”,分组开始正常工作。

类似地,store.clearGrouping() 的行为方式相同。 这是示例代码:

    Ext.define('TestResult', {
    extend: 'Ext.data.Model',
    fields: ['student', 'subject', {
        name: 'mark',
        type: 'int'
    }]
});

Ext.create('Ext.grid.Panel', {
    width: 200,
    height: 240,
    itemId: 'gridtest',
    renderTo: document.body,
    features: [{
        groupHeaderTpl: 'Subject: {name}',
        ftype: 'groupingsummary'
    }],
    store: {
        model: 'TestResult',
        itemId: 'testStore',
        //groupField: 'subject',
        data: [{
            student: 'Student 1',
            subject: 'Math',
            mark: 84
        }, {
            student: 'Student 1',
            subject: 'Science',
            mark: 72
        }, {
            student: 'Student 2',
            subject: 'Math',
            mark: 96
        }, {
            student: 'Student 2',
            subject: 'Science',
            mark: 68
        }]
    },
    columns: [{
        dataIndex: 'student',
        text: 'Name',
        summaryType: 'count',
        summaryRenderer: function(value) {
            return Ext.String.format('{0} student{1}', value, value !== 1 ? 's' : '');
        }
    }, {
        dataIndex: 'mark',
        text: 'Mark',
        summaryType: 'average'
    }],
    tbar: [{
        xtype: 'button',
        text: 'Group',
        handler: function(button, e) {
            var store = Ext.ComponentQuery.query('#gridtest')[0].getStore();
            store.group('subject');
        }
    }, {
        xtype: 'button',
        text: 'clear',
        handler: function(button, e) {
            var store = Ext.ComponentQuery.query('#gridtest')[0].getStore();
            store.clearGrouping();
        }
    }]

});

在 ExtJS 4.2.1 中运行代码在 sencha fiddle 上运行良好,但在 4.2.3 上却不行 我使用http://docs.sencha.com/extjs/4.2.3/ 上的代码预览选项进行了测试。

【问题讨论】:

    标签: javascript extjs extjs4 extjs4.2


    【解决方案1】:

    以上代码在 extjs-4.2.3 中运行良好。

    打开 http://docs.sencha.com/extjs/4.2.3/ 并在开发者工具控制台选项卡中执行以下代码:- “组”按钮上的组工作正常。

    Ext.define('TestResult', {
      extend: 'Ext.data.Model',
      fields: ['student', 'subject', {
        name: 'mark',
        type: 'int'
      }]
    });
    
    var grpGrid = Ext.create('Ext.grid.Panel', {
      width: 200,
      height: 240,
      itemId: 'gridtest',
      renderTo: document.body,
      features: [{
        groupHeaderTpl: 'Subject: {name}',
        ftype: 'groupingsummary'
      }],
      store: {
        model: 'TestResult',
        itemId: 'testStore',
        //groupField: 'subject',
        data: [{
            student: 'Student 1',
            subject: 'Math',
            mark: 84
        }, {
            student: 'Student 1',
            subject: 'Science',
            mark: 72
        }, {
            student: 'Student 2',
            subject: 'Math',
            mark: 96
        }, {
            student: 'Student 2',
            subject: 'Science',
            mark: 68
        }]
      },
      columns: [{
        dataIndex: 'student',
        text: 'Name',
        summaryType: 'count',
        summaryRenderer: function(value) {
            return Ext.String.format('{0} student{1}', value, value !== 1 ? 's' : '');
        }
      }, {
        dataIndex: 'mark',
        text: 'Mark',
        summaryType: 'average'
      }],
      tbar: [{
        xtype: 'button',
        text: 'Group',
        handler: function(button, e) {
            var store = Ext.ComponentQuery.query('#gridtest')[0].getStore();
            store.group('subject');
        }
      }, {
        xtype: 'button',
        text: 'clear',
        handler: function(button, e) {
            var store = Ext.ComponentQuery.query('#gridtest')[0].getStore();
            store.clearGrouping();
        }
      }]
    
    });
    
    Ext.create('Ext.window.Window', {
      title: 'Hello',
      height: 200,
      width: 400,
      layout: 'fit',
      items: [grpGrid]
    }).show();
    

    【讨论】:

    • Sencha fiddle ext-4.2.3 版本可能有些问题。
    • 嗨 Chetan,您能否详细说明如何在 docs.sencha.com 上运行它?我找不到开发者工具控制台标签
    • 在 Chrome 浏览器中按 F12 进入开发者工具,在控制台选项卡中,复制并粘贴上面的代码来执行它。您应该会看到一个带有上述网格和分组工作的浮动窗口。
    • 嗨 Chetan,谢谢。尽管它可以通过您描述的方法工作,但在应用程序中却没有。 Sencha 承认了这个 bug,缺陷 id 是 EXTJS-15190 link
    【解决方案2】:

    ExtJS 4.2.4 的夜间构建解决了问题 缺陷 ID:EXTJS-15190 link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-27
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      相关资源
      最近更新 更多