extjs - установить ширину столбца сетки, достаточную для отображения текста в нем - PullRequest
0 голосов
/ 25 марта 2011

Я загружаю сетку динамически в extjs. Как вы можете видеть ниже, столбец «Создан» недостаточно широк, чтобы в нем отображался весь текст. Я хочу установить ширину каждого столбца так, чтобы он полностью отображал текст.

enter image description here

Возможно ли это сделать? Любое предложение?

Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 30 мая 2012

Спасибо bensiu, я ввел логин.Однако я не могу сказать, что это идеальное решение, но оно решает мою задачу.

Сначала я перемещаюсь по данным и нахожу самую длинную строку в этом столбце (включая имя заголовка этого столбца).

// Store the longest string for each column in columns[col].maxstring 

// Define a hidden label
{
    xtype: 'label',
    id: 'lblTab',
    hidden: true
}

var lblTab = Ext.getCmp('lblTab');
var hiddenField = Ext.util.TextMetrics.createInstance(Ext.getCmp('lblTab').el);
var widthValue = 0;

// Iterate through each columns to set its maximum width
for(var col in columns) {
    // find width of string
    widthValue = hiddenField.getWidth(columns[col].maxstring);

    // set column width
    colModel.setColumnWidth(columns[col].index, widthValue + 20, false);  
}

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 25 марта 2011

используйте параметр width: ... в конфигурации вашего столбца. Так просто, как это. Я не вижу ваш код, поэтому я думаю.

Однако, похоже, у вас больше вертикального пространства -> возможно, будет решена дата перерыва в 2 строки (с использованием шаблона), или вы можете иметь специальный класс css только для этой ячейки с маленькой буквой, чтобы соответствовать.

Edit: в вашем случае это может быть комбинация defaultWith в ColumnModel (по крайней мере, получить 120, чтобы соответствовать вашей дате, если сетка из большего числа столбцов будет корректироваться) и setColumnWith () динамически в зависимости от длины данных и количества столбцов - логика зависит от вас

...