Как правильно объявлять функцию в представлении ExtJS?

Я использую ExtJS 4.1. Я использую функцию MVC. Я определил все свои элементы управления в View и отвечаю на Controller для обработки событий. Я хочу добавить некоторые функции в сетку. Я не уверен, в каком месте я могу определить функцию. Можно ли определить функцию с видом?

В данном случае под функцией я подразумеваю функцию группировки

Ext.define('PA.view.OptionsView', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.optionsview',
    id: 'option-panel',
    title: 'Options',
    // feature: --- Where can i define the feature in order to use it
items: [{


        xtype: 'grid',
        id: 'columnGrid',
        flex: 1,
        hideHeaders: true,
        store: 'myStore',
        columns: [
            {
                header: 'Columns',

                sortable: false,
                dataIndex: 'DisplayName'
            },
            {
                header: 'Column2',

                sortable: false,
                dataIndex: 'DisplayName2'
            }
        ]
}]

});

Если я определю функцию группы следующим образом:

features: [{
    ftype: 'grouping',
    groupHeaderTpl: '{columnName}: {name} ({rows.length} Item{[values.rows.length > 1 ? "s" : ""]})',
    hideGroupedHeader: true,
    startCollapsed: true,
    id: 'restaurantGrouping'
}],

тогда я не могу включить / отключить группу, так как эти свойства / методы недоступны, как показано на рисунке ниже:

если я определю функцию, как это:

var groupingFeatureColumn = Ext.create('Ext.grid.feature.Grouping', {

    groupHeaderTpl: '{name} ({rows.length} Item{[values.rows.length > 1 ? "s" : ""]})',
    hideGroupedHeader: true,
    startCollapsed: false,
    id: 'measureGrouping-column'
});

Затем я могу включить отключить функцию, так как эти свойства доступны, как показано ниже

1 ответ

В вашем определении вы расширяете Ext.panel.Panel, но этот класс не имеет функции группировки.

Вам нужно расширить Ext.grid.Panel, после чего вы просто добавляете features: конфигурации:

features: [{
    ftype: 'grouping',
    groupHeaderTpl: '{columnName}: {name} ({rows.length} Item{[values.rows.length > 1 ? "s" : ""]})',
    hideGroupedHeader: true,
    startCollapsed: true,
    id: 'restaurantGrouping'
}],

Совет: посмотрите на документацию для версии 4.2.2, и код отображается справа.

Другие вопросы по тегам