Перенос слов в ячейки сетки в Ext JS

Возможно, вы сможете сделать это с помощью xpath. что-то вроде //tr[contains(@class, 'row') and position() mod 2 = 0] может работать. Существуют другие вопросы SO, расширяющие подробности о том, как более точно сопоставлять классы.

29
задан richardtallent 21 January 2010 в 00:26
поделиться

6 ответов

Не «лучшее решение», но похожее. Недавно мне нужно было разрешить ВСЕ ячейки в каждой сетке для переноса. Я использовал похожее исправление на основе CSS (это было для Ext JS 2.2.1):

.x-grid3-cell-inner, .x-grid3-hd-inner {
  white-space: normal; /* changed from nowrap */
}

Я не удосужился установить стиль для td, я просто выбрал класс ячейки.

18
ответ дан Jonathan Julian 21 January 2010 в 00:26
поделиться

Если вы хотите применить перенос только к одному столбцу, вы можете добавить пользовательский рендер.

Вот функция для добавления:

function columnWrap(val){
    return '<div style="white-space:normal !important;">'+ val +'</div>';
}

Затем добавьте renderer: columnWrap к каждому столбцу, который вы хотите обернуть

new Ext.grid.GridPanel({
[...],
columns:[{   
     id: 'someID',
     header: "someHeader",
     dataIndex: 'someID',
     hidden: false,
     sortable: true,
     renderer: columnWrap           
}]
74
ответ дан Jack Kleinman 21 January 2010 в 00:26
поделиться

Если вы хотите обернуть текст только в определенные столбцы и используете ExtJS 4, вы можете указать класс CSS для ячеек в столбце:

{
    text: 'My Column',
    dataIndex: 'data',
    tdCls: 'wrap'
}

И в своем файле CSS:

.wrap .x-grid-cell-inner {
    white-space: normal;
}
13
ответ дан CTarczon 21 January 2010 в 00:26
поделиться

используйте

cellWrap: true

Если вы все еще хотите использовать css, всегда пытайтесь работать с пользовательскими интерфейсами, переменными и т. Д. В темах или устанавливайте стиль с помощью свойства style.

1
ответ дан Tarabass 21 January 2010 в 00:26
поделиться

Другое решение заключается в том, что:

columns : [
    {
        header: 'Header',
        dataIndex : 'text',
        renderer: function(value, metaData, record, rowIndex, colIndex, view) {
            metaData.style = "white-space: normal;";
            return value;
        }
    }
]
4
ответ дан Tiago Sippert 21 January 2010 в 00:26
поделиться

Лучший способ сделать это - установить для cellWrap значение true, как показано ниже.

cellWrap: true

Хорошо работает в EXTJS 5.0.

1
ответ дан Augustine Joseph 21 January 2010 в 00:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: