Панель сетки ExtJS - несколько «рядов» на строку? - PullRequest
5 голосов
/ 23 мая 2011

У нас есть панель ExtJS Grid Panel, в которую добавлено слишком много столбцов (imo), поэтому я собираюсь добавить некоторые данные в «подстроки» основной строки.Как:

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

Мне известен плагин expander, но нам не нужно было бы расширять / сворачивать функции, и всегда нужно открывать подстроки.

Есть мысли или идеи?

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

Ответы [ 2 ]

16 голосов
/ 06 июня 2011

Если вы используете 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';
        }
    }
0 голосов
/ 24 мая 2011

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

...