Панель сетки ExtJS — несколько строк в строке?

У нас есть панель сетки ExtJS, которая разрослась и включает слишком много столбцов (imo), поэтому я изучаю возможность объединения некоторых данных в «подстроки» основной строки. Нравится:

Данные1 | Данные2 | Данные3 | Данные4 | Данные5
Некоторые дополнительные данные, охватывающие
Данные1 | Данные2 | Данные3 | Данные4 | Данные5
Некоторые дополнительные данные, охватывающие

Я знаю о плагине expander, но нам не нужны функции развертывания/свертывания, и нам всегда нужны открытые подстроки.

Любые мысли или идеи?

Заранее спасибо.


person Chewpers    schedule 23.05.2011    source источник


Ответы (2)


Если вы используете ExtJS-4,

// ...
var rowBodyFeature = Ext.create('Ext.grid.feature.RowBody', {
    getAdditionalData: function(data, rowIndex, record, orig) {
        var headerCt = this.view.headerCt,
        colspan  = headerCt.getColumnCount();
        return {
            rowBody: "HELLO WORLD!", // do something with record
            rowBodyCls: this.rowBodyCls,
            rowBodyColspan: colspan
        };
    }
});

Ext.create('Ext.grid.Panel', {
    // ...
    features: [rowBodyFeature]
    // ...
});

Если вы используете ExtJS-3, попробуйте:

new Ext.grid.GridPanel({
    //...
    viewConfig: {
        enableRowBody: true,
        getRowClass: function(record, rowIndex, p, store) {
            p.body = 'HELLOW WORLD: ' + record.get('attribute');
            return 'x-grid3-row-expanded';
        }
    }
person Dzhu    schedule 06.06.2011
comment
Вы можете найти дополнительную документацию, включая примеры, здесь (ExtJS 4.2.1) - person Kevin Cooper; 24.06.2013

Что вам нужно сделать, так это реализовать вложенную сетку с помощью плагина расширения. В событии щелчка или расширения вы можете использовать идентификатор строки в качестве ключа для загрузки подстрок.

person It Grunt    schedule 23.05.2011