extjs 6.2.0 сетка столбца установить ширину по заголовку (заголовок)

Как установить ширину столбцов по заголовку (заголовку) в extjs 6.2.0?

Я хочу автоматически устанавливать ширину столбцов по их заголовкам.

2 ответа

Ширина столбца должна быть нулевой:

var c = Ext.create('Ext.grid.column.Column', { text: 'Nam12131231313e', dataIndex: 'name', width: null});

Как вы можете видеть, я создал функцию getColumnWidth(), она будет принимать текст столбца сетки в качестве параметра и затем возвращать ширину столбца.

Вы также можете настроить числа в getColumnWidth () по своему усмотрению.

Ссылка Sencha Fiddle https://fiddle.sencha.com/

Ext.application({
    name : 'Fiddle',
    launch : function() {
        Ext.create('Ext.window.Window',{
  title:'Grid Auto Fit Column Width Based on Header Text',
  width:600,
  height:400,
  autoShow:true,
  layout:'fit',
  items:[{
      xtype:'grid',
      columns:[
          {
              text:'id',
              width:this.getColumnWidth('id'),
          },{
              text:'Name',
              width:this.getColumnWidth('Name'),
          },{
                 text:'ThisWillFitItsData',
              width:this.getColumnWidth('ThisWillFitItsData')
          },{
                 text:'LetsTryMoreLongerText',
              width:this.getColumnWidth('LetsTryMoreLongerText')
          },{
              text:'Fixed',
              width:60
          }
          ]
      }]
 });
    },
    getColumnWidth:function(text){
        let columnWidth = (text.length * 7) + 35  // giving 7 pixles for each letter in the text
        //Optional This part is used to set a maximum column width in case there is too many charachter in the text
        if(columnWidth>400){
            columnWidth = 400
        }
        return columnWidth;
    }
});

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