Перехват события выбора изменения из JqGrid

Я работаю над проектом MVC, в котором используется JQGrid. В одной из моих сеток у меня есть подсетка. В подсетке один из столбцов представляет собой раскрывающийся список. Я хотел бы поймать событие изменения этого раскрывающегося списка, чтобы я мог установить значение по умолчанию для следующей ячейки, используя выбранный элемент.

Я использовал Firebug, чтобы увидеть идентификатор <select> html, и попробовал следующий код, который не запускает предупреждение:

$('#MySelectId').change(function() {
        alert('Test');
    });

Этот подход работал при использовании модальной формы редактирования, но я использую встроенное редактирование и хотел бы поймать событие, когда пользователь изменяет раскрывающийся список в сетке.


person Joe    schedule 28.03.2011    source источник


Ответы (1)


Вы можете определить свойство dataEvents как часть editoptions . В dataEvents вы определяете свой собственный дескриптор события «изменить», и jqGrid выполнит привязку после того, как соответствующая ячейка будет инициализирована в режиме редактирования. См. здесь или здесь примеры.

person Oleg    schedule 28.03.2011
comment
Еще раз спасибо Олег, ты звезда! - person Joe; 28.03.2011
comment
Я пытаюсь установить значение текстового поля рядом с моим раскрывающимся списком, но, похоже, я не могу с ним справиться. Я пробовал использовать.. - person Joe; 29.03.2011
comment
var row = $(e.target).closest('tr.jqgrow'); var rowId = row.attr('id'); $(text# + rowId + _MyColumnName, row[0]).html(myValue); - person Joe; 29.03.2011
comment
Извините, я не исследовал это должным образом, вы уже ответили на этот вопрос от другого пользователя. Я изменил свою последнюю строку на '$(# + rowId + _MyColumnName).val(myValue);' - person Joe; 29.03.2011
comment
@Joe: Извините, я не понимаю контекст кода. Вы используете редактирование формы и хотите изменить текстовое поле формы для столбца MyColumnName на основе значения myValue из раскрывающегося списка? В случае, если идентификаторы форм редактирования будут иметь идентификаторы с теми же именами, что и имя столбца, вы можете просто сделать $("#MyColumnName").val(myValue). Поскольку я не совсем понимаю ваш пример кода (особенно контекст), я не уверен, что это то, что вам нужно. - person Oleg; 29.03.2011
comment
@Oleg: я прочитал ваш ответ здесьссылка и решил мою проблему. Во время моего встроенного редактирования я пытался разрешить пользователю устанавливать текстовое поле в строке, используя раскрывающийся список из той же строки. Моя проблема заключалась в доступе к текстовому полю, чтобы присвоить ему новое значение. Но после прочтения вашего ответа я смог исправить код, как в моем последнем комментарии. - person Joe; 29.03.2011
comment
@Joe: Ты пишешь, ответ очень близок к твоей проблеме. Я рад слышать, что я мог помочь вам. С наилучшими пожеланиями! - person Oleg; 29.03.2011