прокручиваемый диалог jqgrid - PullRequest
1 голос
/ 21 мая 2010

У меня есть jqGrid, в котором есть диалоги добавления / редактирования с формой, которая длиннее высоты диалога, но диалог не будет прокручиваться. Я пытался добавить стиль overflow: auto в диалог, но безрезультатно:

$("div.ui-jqdialog-content").css("overflow", "auto");

Хотя, если я изменю auto на scroll, я по крайней мере вижу полосу прокрутки, но прокрутки по-прежнему нет:

$("div.ui-jqdialog-content").css("overflow", "scroll");

Это, по крайней мере, дает мне небольшой проблеск надежды, что я на правильном пути.

Похоже, что в документации API нет направления поддержки прокрутки:

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing

Кто-нибудь знает, как добавить рабочую полосу прокрутки в диалоговое окно jqModal, используемое jqGrid?

UPDATE

Это полная хакерская работа, но у меня появилась полоса прокрутки и она работает следующим образом:

setTimeout(function() {$("#FrmGrid_list").html('<div style="height: 300px; overflow: auto;">' + $("#FrmGrid_list").html() + '</div>');}, 1000);

Я прикрепил это к событию afterShowForm. Однако это действительно не решает проблему, поскольку вызывает другие проблемы с другими полями.

Ответы [ 3 ]

3 голосов
/ 21 мая 2010

Я думал, что поделюсь своим решением для других.

Элемент form имеет свойство стиля height: auto; по умолчанию, которое заставляет overflow: auto; работать не так, как хотелось бы.Чтобы сделать прокрутку переполнения, необходимо установить высоту в фиксированное число, чтобы ограничить контейнер form и, следовательно, сделать необходимым overflow.

Я прикрепил обновление css к редактированию формы afterShowFormсобытие, используя следующий код:

afterShowForm: function(form) { form.css("height", "300px"); }

Имейте в виду, 300px - это произвольное число, которое я выбрал для тестирования.Это число будет изменено в соответствии с моими потребностями.Он может даже динамически корректироваться при изменении размера.Кто знает.

Также, используя Firebug, я обнаружил, что мой идентификатор формы - FrmGrid_list .Мой идентификатор сетки: список (например, <table id="list"></table> и jQuery("#list").jqGrid({...});).Если ваша сетка имеет имя, отличное от списка, идентификатор формы (выше) должен отражать это.

Ссылочная ссылка:

1 голос
/ 21 мая 2010

Ваша проблема звучит странно. В каждом диалоговом окне редактирования / добавления уже есть прокручиваемый form с именем «FormPost» внутри. Эта форма имеет следующий стиль:

position: relative; width: 100%; height: auto; overflow: auto;

Я только что протестировал одну jqGrid с большим количеством элементов управления и могу без проблем прокручивать ее там.

Причина вашего странного поведения, вероятно, заключается в том, что вы либо забыли включить необязательные jqModal.js и jqDnR.js (см. То же http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing в начале) или используйте неверный путь к файлам, чтобы они не загружались.

0 голосов
/ 31 января 2018

Этот вопрос очень старый, но я все равно добавлю ответ.

Я не знаю, было ли это возможно раньше, но теперь вы можете просто использовать свойство dataheight диалога (добавить или изменить), чтобы точно установить высоту (в пикселях) внутренней формы. По умолчанию установлено значение «auto», поэтому оно не переполняется. При установке желаемой высоты отображается полоса прокрутки, если это необходимо.

ссылка: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing

...