jqGrid - Наложение редактирования формы не совпадает с темой - PullRequest
2 голосов
/ 23 июня 2011

Довольно просто здесь для тех, кто использовал jqGrid с редактированием формы, наложение jqGrid для придания диалогу редактирования формы модального режима использует «.jqmOverlay» вместо тематического «.ui-widget-overlay» для jquery.

Я попытался в событии afterShowForm удалить jqmOverlay и заменить его на ui-widget-overlay, но правильное наложение (ui-widget-overlay) появляется на секунду, прежде чем оно возвращается к неправильному (jqmOverlay)).

Похоже, что есть более поздние события, из-за которых я мог бы попытаться выстрелить, если я не ошибаюсь.

Любая помощь будет принята.

afterShowForm: function (form)
    {
        var overlayDiv = $('.jqmOverlay');
        overlayDiv.removeAttr('class');
        overlayDiv.attr('class', 'ui-widget-overlay');
        //$('.jqmOverlay').attr('class', 'ui-widget-overlay');                       

    }

1 Ответ

3 голосов
/ 23 июня 2011

Редактирование формы поддерживает два разных наложения: стандартное 'ui-widget-overlay' и jqModal от jqModal.js.

Если вы не хотите использовать плагин jqModal, вы можете включить свойство jqModal: false в список параметров Добавить или Изменить настройки. В случае, если наложение будет следующим:

<div style="display: block;" id="lui_list" class="ui-widget-overlay jqgrid-overlay"/>

(здесь война использовала сетку, в которой элемент <table> имеет id = "list")

Если вы хотите удалить оверлей, вы можете скрыть его в отношении

afterShowForm:function(){
    $("#lui_"+grid[0].id).hide(); // hide #lui_list overlay
}

, где grid определяется как var grid=$("list");

ОБНОВЛЕНО : Если вы хотите, вы можете скрыть наложение сетки, как я описал ранее, и создать собственное наложение с классом 'ui-widget-overlay'. Я создал демо , которое работает в моих тестах без проблемы, которую вы описываете. Я использовал следующие параметры диалогового окна «Редактировать»:

recreateForm:true,
jqModal:false,
reloadAfterSubmit:false,
savekey: [true,13],
closeOnEscape:true,
closeAfterEdit:true,
afterShowForm:function(){
    $("#lui_"+grid[0].id).hide();
    $('body').prepend('<div class="ui-widget-overlay" id="My_list" style="left: 0px; top: 0px; width: 100%; height: 100%; position: fixed; z-index: 949; opacity: 0.3;"/>');
},
onClose:function(){
    $('#My_list').remove();
}

Возможно, вам следует изменить значение opacity или z-index, чтобы лучше использовать его в своем приложении. Будьте осторожны с настройкой z-index. Если вам нужно увеличить его, возможно, вам придется использовать дополнительное значение zIndex свойств редактирования.

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