Ширина выпадающего списка ExtJS ComboBox больше ширины поля ввода? - PullRequest
20 голосов
/ 30 мая 2011

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

У меня есть поле со списком, который я хочу иметь размер около 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
    });

Ответы [ 2 ]

36 голосов
/ 31 мая 2011

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

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

4 голосов
/ 12 марта 2015

Я не нашел способа динамического изменения свойства 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

...