вертикальная полоса прокрутки в ExtJS GridPanel - PullRequest
10 голосов
/ 29 сентября 2010

Я работаю над проектом, в котором у меня есть одна GridPanel на странице.На панели может отображаться любое количество строк, и у меня установлено свойство autoHeight, в результате чего GridPanel расширяется, чтобы соответствовать количеству строк.Теперь я хочу горизонтальную полосу прокрутки, потому что в некоторых разрешениях отображаются не все столбцы (и я не могу уменьшить количество столбцов).

Если я установил autoHeight, у меня нет горизонтальной полосы прокрутки, если я не установил ее иустановить фиксированную высоту У меня есть горизонтальная полоса прокрутки, но GridPanel, очевидно, не соответствует количеству строк ....

Могу ли я что-нибудь сделать, чтобы это исправить?Кажется, я не могу найти недвижимость, которая бы достигла нужного мне результата.

Ответы [ 5 ]

8 голосов
/ 28 августа 2012

Вы обнаружите, что размещение родительского контейнера (Ext.panel.Panel или любого другого контейнера) вокруг панели сетки будет успешным. Если вы жестко запрограммируете высоту, ширину и расположение (чтобы «подогнать») родительский контейнер, дочерний элемент (Ext.grid.Panel) развернется, чтобы заполнить все пространство, доступное из его родительского контейнера.

См. Стр. 80 и 81 из Ext JS 4 Руководство по разработке веб-приложений .

Вы можете использовать запись отложенного создания экземпляров для Ext.grid.Panel. Значение использовать 'grid' для вашего дочернего контейнера (элемент) xtype свойство.

Ext.create('Ext.panel.Panel', {
    title: 'parent container',
    width: 800,
    height: 600,
    layout: 'fit',
    items: {
        xtype: 'grid',
        title: 'child container',

        ... define your grid here 

    },
    renderTo: 'grand parent container'
});
5 голосов
/ 28 мая 2012

Я бы подумал установить autoScroll: true на панели. Панель с сеткой.

1 голос
/ 29 сентября 2010

Как сказал Эрго, это, скорее всего, проблема компоновки - GridPanel, вероятно, выше панели, на которой она находится, достаточно высоко, чтобы не требовалась полоса прокрутки, но, очевидно, не полностью видимой.Поместите GridPanel в контейнер с правильной компоновкой, то есть компоновкой границ, макетом размещения или макетом карты.Правильно настроить менеджеров компоновки - это, как правило, одна из самых сложных задач ExtJS-Fu.

1 голос
/ 29 сентября 2010

Это похоже на проблему с настройками макета, а не со свойствами объекта.

Попробуйте установить для свойства макета родительского контейнера значение 'fit' - вы также можете предоставить отрывок кода?

0 голосов
/ 18 марта 2014

добавление

viewConfig = {
        scroll:false,
        style:{overflow: 'auto',overflowX: 'hidden'}
    }

иногда вызывает ошибку с отображением 2 полос прокрутки. Чтобы предотвратить это, в моем случае я добавил слушателя. И тогда отлично работает.

this.on('scrollershow',function(scroller,orientation,eOpts){
        if (orientation=='vertical'){
            scroller.hide();                
        }
},this);
...