jq Grid Search on Enter, если окно поиска всегда отображается на странице - PullRequest
0 голосов
/ 27 мая 2011

Это продолжение этого вопроса Можно ли заставить окно поиска jqGrid оставаться на странице?

Я нашел направления для выполнения поиска в сетке по клавише ввода, если окно поиска находится в процессе поиска.открывается и затем закрывается обычным способом, но возможно ли сделать так, чтобы клавиша ввода запускала поиск, если форма поиска всегда видна?

Правка для литерала среди нас, и как бы я поступилделай так, пожалуйста?

1 Ответ

1 голос
/ 27 мая 2011

Ты это возможно. Я полагаю, что вы все еще используете jqGrid 3.8.2. Поэтому я буду использовать версию в своем ответе.

Основная идея решения вы можете найти в ответе . Чтобы быть более осторожным, код beforeShowSearch должен быть немного расширен:

beforeShowSearch: function($form) {
    // because beforeShowSearch will be called on all open Search Dialog,
    // but the old dialog can be only hidden and not destroyed
    // we test whether we already bound the 'keydown' event
    var events = $('.vdata',$form).data('events'), event;
    for (event in events) {
        if (events.hasOwnProperty(event) && event === 'keydown') {
            return;
        }
    }
    $('.vdata',$form).keydown( function( e ) {
        var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
        if (e.which == 13) { // save
            //$(".ui-search", $form).click();
            grid[0].SearchFilter.search();
        }
    });
}

Способ работает в диалоговом окне расширенного поиска (см. демо ) и в диалоговом окне, которое всегда находится над сеткой (см. другое демо ).

ОБНОВЛЕНО : Начиная с jQuery 1.8 следует использовать $._data($('.vdata',$form)[0], 'events'); вместо $('.vdata',$form).data('events'), чтобы получить список всех событий сетки.

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