Подтвердить что ты не робот

Ширина раскрывающегося списка ExtJS ComboBox шире ширины входного окна?

Можно ли установить ширину раскрывающегося меню ExtJS (версия 4) ComboBox, которое будет шире, чем ширина окна ввода?

У меня есть comboxbox, который я хочу быть около 200 пикселей, но у меня есть пейджинг в раскрывающемся списке результатов, и эта ширина даже не настолько велика, чтобы отображать все элементы панели подкачки.

Здесь мой код для создания комбо:

var add_combo = Ext.create('Ext.form.field.ComboBox', 
    {
        id              : 'gbl_add_combo',
        store           : Ext.create('Ext.data.Store',
        {
            remoteFilter : true,
            fields : ['gb_id', 'title'],
            proxy  : 
            {
                type        : 'ajax',
                url         : 'index.php/store/get_items',
                reader      : 
                {
                    type            : 'json',
                    root            : 'records',
                    totalProperty   : 'total',
                    successProperty : 'success'
                },
                actionMethods : 
                {
                    read    : 'POST',
                    create  : 'POST',
                    update  : 'POST',
                    destroy : 'POST'
                }
            }
        }),
        listConfig:
        {
            loadingText: 'Searching...',
            emptyText: 'No results found'
        },
        queryMode       : 'remote',
        hideLabel       : true,
        displayField    : 'title',
        valueField      : 'gb_id',
        typeAhead       : true,
        hideTrigger     : true,
        emptyText       : 'Start typing...',
        selectOnFocus   : true,
        width           : 225,
        minChars        : 3,
        cls             : 'header_combo',
        pageSize        : 15
    });
4b9b3361

Ответ 1

Есть две части. Во-первых, вам нужно установить matchFieldWidth: false в вашей конфигурации combobox. Затем вы можете указать атрибуты ширины в разделе listConfig для стилирования только раскрывающегося списка, указав ширину самого списка со списком в основной конфигурации.

Это зависит от предыдущей версии, которая позволяет указать свойство listWidth.

Ответ 2

Я не нашел способ изменить свойство matchFieldWidth динамически. Поэтому я нашел другое решение:

 {
   xtype: 'combobox',
   fieldLabel: 'Short Options',
   queryMode: 'local',
   store: ['Yes', 'No', 'Maybe'],
   matchFieldWidth: false,
   listConfig: {
     listeners: {
       beforeshow: function(picker) {
         picker.minWidth = picker.up('combobox').getSize().width;
       }
     }
   }
 }

Источник: http://www.sencha.com/forum/showthread.php?293120-Setting-BoundList-minWidth-to-the-width-of-a-parent-ComboBox-without-matchFieldWidth