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

0

Недавно мы обновили нашу 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

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

Ваш Ответ

1   ответ
4

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();
        }
    }
});
@tpeczek: я пытаюсь улучшить качество языковых файлов, включенных в jqGrid. Я отправил только сейчасthe post, Если вы найдете время, не могли бы вы написать свои комментарии о проблемах, которые я нашел вgrid.locale-pl.js?
Конечно, я посмотрю на это позже сегодня
+1 за подробный ответ
@tpeczek: Спасибо! Кстати я недавно выложил два запроса пула (this а такжеthis), который улучшает функциональность jqGrid. Первый из них уже объединен в jqGrid.The demo показывает, как можно использовать сейчасcustom controls в диалоговом окне поиска (поле «Рейтинг»).Another demo показывает поддержку клавиатуры (searchOnEnter, closeOnEscape и удержания фокуса на нажатиях кнопок) и стиль кнопок jQuery UI.

Похожие вопросы