ExtJS 4> Сетка> Динамически установить высоту, чтобы соответствовать любому количеству записей - PullRequest
3 голосов
/ 17 ноября 2011

В моей ExtJS 4 Grid я хотел бы динамически устанавливать высоту при загрузке записей.

Например:

  1. Если моя Grid загружает 52 записи,тогда он должен показать все 52 записи одновременно (без какой-либо полосы прокрутки в сетке).

  2. Если моя сетка загружает 73 записи, то он должен показывать все 73 записи одновременно (безлюбая полоса прокрутки в сетке).

т.е. мне не нужны никакие полосы прокрутки в сетке.Вместо этого я хотел бы вместо этого использовать полосу прокрутки браузера.

У кого-нибудь есть решение?

Ответы [ 4 ]

3 голосов
/ 18 ноября 2011

Вы должны обработать событие загрузки в хранилище вашей сетки, а затем изменить высоту сетки с помощью

youGrid.getStore().on('load', function anonym(){
   myGrid.setHeight(this.getCount() * 16); // to be calculated
}

Конечно, вы должны изменить размер всего родительского контейнера этой сетки

2 голосов
/ 15 мая 2012

, если вы не указали свойство высоты для вашей сетки. это решит это.

1 голос
/ 18 марта 2014

Спасибо за помощь, это был ответ, хотя, если вы находитесь за пределами инициализации сетки, что-то вроде этого выглядит более подходящим:

myGrid.getView().on('refresh', function () { var cellheight = 28; var titleHeight = 50; myGrid.setHeight(myGridStore.getCount() * cellheight + titleHeight); });

0 голосов
/ 11 июня 2015
Ext.create('Ext.grid.Panel', {
    id: "empDetails",
    store: store,
    columns: [{
        text: "Name",
        dataIndex: 'Name'
    }, {
        text: "Age",
        dataIndex: 'Age'
    }],
    renderTo: 'example-grid',
    forceFit: true,
    width: 300,
    ***getTotalHeight: function() {
        return "auto";
    },***
    dockedItems: [{
        xtype: 'toolbar',
        items: [{
                text: 'Employee Details'
            }

        ]
    }]

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...