Есть ли способ восстановить некоторые функции предыдущей версии jqGrid?

Недавно мы обновили нашу jqgrid с 3.8.2 до 4.3.1, потому что мы хотели иметь возможность использовать шаблоны поиска, а также убедиться, что у нас есть все доступные исправления ошибок. Но есть две вещи, которые изменились, и я хотел бы посмотреть, смогу ли я заставить новую версию вести себя как предыдущая версия.

Мы использовали расширенный поиск, и наш сайт был настроен на постоянное отображение диалогового окна поиска над сеткой.

In the previous version, we could add a new filter by selecting a plus button next to an existing filter. Using this + button would cause the newly created filter to have the same options as the existing filter.

Old Search

New Search

In the previous version, I could not delete all of the filters from the search box. Clicking remove when only one filter was in the box did nothing. I need a way to prevent users from zapping out the last filter control.

All filters deleted

 Oleg12 апр. 2012 г., 22:21
Я полагаю, вы имеете в виду обновление нашего jqGrid с 3.8.2 до 4.3.2. Версия 4.3.2 была недавно опубликована. Кроме того, вы спросили дваseparate вопросы в одном. Это затрудняет поиск информации другими пользователями. Лучше разделить текущие вопросы на две части.

Ответы на вопрос(1)

Решение Вопроса

two separate questions все вместе. Это затрудняет поиск информации другими пользователями. Лучше разделить текущие вопросы на две части.

Тем не менее, в отношении первой части вашего вопроса я хочу просто описать, что поведение старого поискового диалога было так из-за использованияjQuery.clone, В функции было много ошибок, которые долгое время не исправлялись. Поэтому в некоторых ситуациях поисковый диалог работал неправильно. В новой реализации Диалога поиска никто не использовалjQuery.clone явно как единственный безопасный способ решения проблем. Поведение, которое вы пропустили в новой версии диалога поиска, былоby default реализованы. В новом диалоге поиска соответствующий код не существует, но вы можете написать его самостоятельно. В основном вам нужно написать свой код вafterRedraw Перезвоните.

Вы должны принять во внимание, что поддержка jqGrid теперь мощнаяmultipleGroup: true вариант. Так что вам нужно, вероятно, скопировать выборки из других элементов управленияof the same group:

enter image description here

О вашем втором вопросе:

Ответ содержитдемо которые описывают идею, чтобы отвязатьclick, Вероятно, лучше было бы отменить привязку или скрыть & quot; Удалить правило & quot; кнопка только если это единственная кнопка.

Если вы не используетеmultipleGroup: true вариант вы можете попробовать следующее

$.extend($.jgrid.search, {
    multipleSearch: true,
    overlay: 0,
    afterRedraw: function () {
        // don't permit to remove the last rule
        $('input.delete-rule:first',this).unbind('click').hide();
    }
});

В случае использованияmultipleGroup: true тем лучше будет другой код

$.extend($.jgrid.search, {
    multipleSearch: true,
    multipleGroup: true,
    overlay: 0,
    afterRedraw: function () {
        // don't permit to remove the last rule
        var $delRules = $('input.delete-rule', this);
        if ($delRules.length === 1) {
            $delRules.unbind('click').hide();
        }
    }
});
 13 апр. 2012 г., 09:50
+1 за подробный ответ
 13 апр. 2012 г., 14:42
Конечно, я посмотрю на это позже сегодня
 13 апр. 2012 г., 13:48
@tpeczek: я пытаюсь улучшить качество языковых файлов, включенных в jqGrid. Я отправил только сейчасthe post, Если вы найдете время, не могли бы вы написать свои комментарии о проблемах, которые я нашел вgrid.locale-pl.js?
 13 апр. 2012 г., 10:10
@tpeczek: Спасибо! Кстати я недавно выложил два запроса пула (this а такжеthis), который улучшает функциональность jqGrid. Первый из них уже объединен в jqGrid.The demo показывает, как можно использовать сейчасcustom controls в диалоговом окне поиска (поле «Рейтинг»).Another demo показывает поддержку клавиатуры (searchOnEnter, closeOnEscape и удержания фокуса на нажатиях кнопок) и стиль кнопок jQuery UI.

Ваш ответ на вопрос