jqGrid Autocomplete Inline Editing

У меня есть сетка, использующая jqGrid, и в этой сетке у меня есть строки, редактируемые с помощью встроенного редактирования. Я пытаюсь сделать автозаполнение в редактируемых строках. Возможно ли это сделать? И в случае да, как я могу идентифицировать эти строки?


person mailazs    schedule 08.03.2013    source источник


Ответы (1)


Вы можете установить classes: autoCompleteFieldClassName в colModel столбца, а затем использовать его для добавления в поля автозаполнения при редактировании.

Пример: в colModel вы можете назначить класс ячейкам столбца с помощью опции classes: autoCompleteFieldClassName

Затем этот класс позволит вам установить селектор jQuery для встроенного события редактирования, что позволит вам выбрать элемент ввода, прикрепленный к этому столбцу ячейки. Когда у вас есть этот элемент, вы можете прикрепить автозаполнение jQuery

$(inputElement).autocomplete({ source: '/Controller/GetAutocompleteInformation',
    minLength: 2, autosearch: true,
    select: function (event, ui) {
        $(elem).val(ui.item.value);
person Mark    schedule 08.03.2013
comment
Спасибо за ответ еще раз @Mark! Извините, но не могли бы вы привести пример? Я не понял, как я могу реализовать это. - person mailazs; 08.03.2013
comment
См. редактирование... Firebug или один из его эквивалентов будет вашим другом, когда вы будете искать элементы в своей сетке для создания этой функциональности. - person Mark; 08.03.2013
comment
Хммм хорошо, теперь я понял! Еще раз спасибо @Марк :) - person mailazs; 08.03.2013
comment
Еще раз привет, @Mark... Мне снова нужна твоя помощь :) Я пытался сделать это, но это не работает... при попытке написать письмо в поле обработка почти останавливается, а затем он принимает неправильное значение, он получает значение, которое было в сетке: / Я не знаю, как это исправить, если бы вы могли мне помочь! - person mailazs; 08.03.2013
comment
Извините, позвольте мне переписать это... Когда я пытаюсь ввести одну или несколько букв в поле (которое гипотетически имеет автозаполнение), автозаполнение не работает, и страница (html) перестает отвечать... Я больше ничего не могу сделать на странице, потому что я этого не понимаю! И когда я смотрю на firebug... term имеет неправильное значение... оно имеет значение, которое было в сетке, а не значение, которое я написал. - person mailazs; 08.03.2013
comment
Ваше автозаполнение успешно подключено к правильному элементу ввода? - person Mark; 08.03.2013
comment
Я так думаю... Часть моего кода: function autocomplete_element (value, options) { var $ac = $('<input type="text" />'); $ac.val(value); $ac.autocomplete ({ source: function(request, response) { $.getJSON("autocomplete.php", { term: request.term }, response); } }); return $ac; } |another function| function autocomplete_value(elem, op, value) { if (op == "set") { $(elem).val(value); } return $(elem).val(); } - person mailazs; 09.03.2013
comment
Хорошо проверьте, что вы можете настроить обычное поле ввода текста, прикрепить автозаполнение и заставить его работать должным образом, и тогда оно должно быть таким же, если вы выбрали правильный элемент с помощью селектора jQuery на основе класса, который вы установили в colModel. Помните, что это будет не имя класса для вашего селектора, а скорее дочерний элемент, который прикрепляется при встроенном редактировании. - person Mark; 09.03.2013
comment
Хммм ок, я попробую это! Еще раз спасибо :) - person mailazs; 09.03.2013
comment
Еще раз привет @Mark ... У меня есть сомнения ... Пожалуйста, как я могу быть уверен, что значения, которые я получаю из базы данных, правильно попадают в поле сетки? - person mailazs; 11.03.2013
comment
Для автозаполнения? Изучите json, который вы получаете с сервера? Это похоже на базовое устранение неполадок. - person Mark; 11.03.2013
comment
Да, для автозаполнения. Потому что ответ, который я получаю от сервера, что-то вроде row=Array{"rows":[{"index":null,"cell":"LIGHT"}]}. Извините за сомнение новичка, но это не в формате JSON, не так ли? PS: это то, что я напечатал, является эхом json_encode - person mailazs; 11.03.2013
comment
Выглядит близко ко мне ... Я не совсем уверен, что вы копируете, но вы можете попробовать Google для парсеров/проверщиков JSON. Вы должны иметь возможность выполнить запрос к своей базе данных и посмотреть, возвращает ли автозаполнение действительные результаты. - person Mark; 11.03.2013
comment
Я проверил в валидаторе json, и JSON в порядке. Но моя проблема в том, что ввод автозаполнения ничего не показывает. Когда я пишу что-то в поле, оно выполняет автозаполнение, но не показывает на входе варианты, которые у меня есть, через слово, которое я написал. Это так запутано или вы меня поняли? - person mailazs; 11.03.2013
comment
Ооо, я обнаружил, что я делал неправильно... Я поместил print_r в свой код, и из-за этого моя сетка не работала... теперь автозаполнение показывает, но просто маленькое поле... Я не знаю, как исправить это, но если я исправлю, я опубликую здесь! - person mailazs; 11.03.2013
comment
Моя проблема заключалась в возврате JSON. Ссылка на вопрос, который решает эту проблему :) - person mailazs; 18.03.2013