ExtJs Combobox проблема изменения размера на IE6 - PullRequest
1 голос
/ 06 августа 2009

Combobox в следующем созвездии (чрезвычайно сокращенный код) имеет проблемы с изменением размера в IE6. Небольшая отладка показала, что он не получает событие при попытке уменьшить западную область с помощью сплиттера.

Ext.onReady(function(){
    var grid = new Ext.Viewport({
        layout: 'border'
        ,items: [{
                region: 'west'
                ,width: 200
                ,layout: 'fit'
                ,split: true
                ,items: [{
                    layout: 'accordion'
                    ,items: [{
                        layout: 'Anchor'
                        ,items: [{
                            xtype: 'combo'
                            ,anchor: '100%'
                            ,typeAhead:true
                            ,triggerAction: 'all'
                            ,selectOnFocus: true
                            ,mode: 'local'
                            ,emptyText: 'bitte wählen'
                            ,displayField: 'displayText'
                            ,store: new Ext.data.ArrayStore({
                                fields: ['displayText'],
                                data: [['item1'], ['item2']]
                            })
                        }]
                    }]
                }]
            },{
                region: 'center'
                ,html: 'content'                
            }
        ]
        ,renderTo: Ext.getBody()
    });
});

Ответы [ 3 ]

1 голос
/ 12 августа 2009

Надеюсь, это поможет вам.

Выписка из документа AnchorLayout:

AnchorLayout не имеет прямого параметры конфигурации (кроме унаследованных из них). Тем не менее, контейнер с помощью AnchorLayout может предоставить специфичное для привязки свойство конфигурации anchorSize. По умолчанию AnchorLayout рассчитает якорные измерения в зависимости от размера контейнера сам. Однако, если anchorSize указано, макет будет использовать его как виртуальный контейнер для целей расчет якорных измерений на основе вместо этого, позволяя контейнеру быть измеренным независимо от логика привязки при необходимости.

Элементы, добавленные в AnchorLayout, могут также поставляем привязку свойство config якоря, которое является строка, содержащая два значения: горизонтальное значение привязки и значение вертикальной привязки (например, «100% 50%»). Это значение говорит макет, каким должен быть элемент привязанный к контейнеру. Следующие типы значений привязки поддерживается:

Процент : любое значение от 1 до 100, выраженный в процентах. Первый якорь - это процентная ширина что предмет должен занимать в течение контейнер, а второй процентная высота. Пример: «100% 50%» сделает элемент полностью ширина контейнера и 1/2 его рост. Если только одно значение привязки при условии, что предполагается ширина значение и высота будет по умолчанию авто.

Смещения : любой положительный или отрицательное целочисленное значение. Первый якорь - это смещение справа край контейнера, а второй смещение от нижнего края. Пример: «-50 -100» будет отображать пункт полная ширина Контейнер минус 50 пикселей и полная высота минус 100 пикселей. Если предоставляется только одно значение привязки считается правильным смещением значение и нижнее смещение будет по умолчанию 0.

Стороны : Допустимые значения 'right' (или 'r') и 'bottom' (или 'Б'). Либо контейнер должен иметь фиксированный размер или конфигурация anchorSize значение, определенное во время рендеринга в порядке чтобы они имели какой-либо эффект.

1 голос
/ 06 августа 2009

Это происходит только в аккордеонном макете. Исследуй это дальше.

Ext.onReady(function() {
    var grid = new Ext.Viewport({
        layout: 'border'
        ,items: [{
            region: 'west'
            ,width: 200
            ,split: true
            --,layout: 'fit'    << not necessary. You're overnesting.
            ,layout: 'anchor'
            ,items: [{
                xtype: 'combo'
                ,anchor: '100%'
                ,typeAhead:true
                ,triggerAction: 'all'
                ,selectOnFocus: true
                ,mode: 'local'
                ,emptyText: 'bitte wählen'
                ,displayField: 'displayText'
                ,store: new Ext.data.ArrayStore({
                    fields: ['displayText'],
                    data: [['item1'], ['item2']]
                })
            }]
        },{
            region: 'center'
            ,html: 'content'                                
        }]
    })
});

Выше работает нормально для меня в IE6

0 голосов
/ 30 декабря 2009

У меня была похожая проблема. Попробуйте положить комбобокс в контейнер. Поэтому вместо того, чтобы поместить его прямо в панель с макетом привязки, поместите комбо в контейнер и добавьте этот контейнер на панель с макетом привязки! Это должно работать!

...