Установка высоты контейнера на высоту фрейма в Ext.NET / Ext.JS - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть расширитель строк в Ext.NET, который определен на панели сетки с идентификатором MyGridPanel, например:

x.RowExpander()
    .Loader(x.ComponentLoader()
        .Mode(LoadMode.Component)
        .Url(Url.Action("GetExpandedView", "My"))
        .Listeners(ls =>
        {
            ls.Expand.Handler = string.Format("My.onListRowExpand('{0}', {1}, this);",
                Url.Action("GetMyView", "My"), Model.Id);
        })
        .Params(p =>
        {
            p.Add(new Parameter("id", Model.Id));
        }))

, который при раскрытии вызывает функцию My.onListRowExpand, которая выполняет некоторые функции, включая вызов этой функции с App.MyGridPanel в качестве аргумента для panel:

fitPanelHeight = function(panel) {
    // Update the panel so that we don't cut off the rest of the grid
    if (panel.getHeight() < frameElement.offsetHeight) {
        panel.setHeight(frameElement.offsetHeight);
        panel.update();
    }
}

По сути, все, что делает этот метод, это расширяет контейнер, в который я передаю, так что когда я расширяю расширитель строк, ничто не обрезается. Это решает проблему с макетами HBox и расширителями строк, которая требовала от меня установки высоты для контейнеров. Мне действительно нужно сделать это только один раз, но я еще не понял, как это сделать.

Во всяком случае, когда я запускаю этот код в Internet Explorer 11, я сталкиваюсь с проблемой, из-за которой возникает исключение где-то в исходном коде Ext.JS, в котором говорится:

Невозможно получить свойство 'down' с неопределенной или нулевой ссылкой

Мне кажется, что это ошибка с Ext.JS / Ext.NET, потому что удаление вызова fitPanelHeight исправляет исключение, и этот код выполняется без ошибок в Chrome. Итак, учитывая, что я не могу / не хочу исправлять этот фреймворк, может кто-нибудь предложить метод, с помощью которого я мог бы один раз установить высоту контейнера и таким образом избежать всей этой чепухи?

Для справки, я использую Ext.NET 4.1.0 и Ext.JS 6.0.2 с C # 6.

...