странное поведение в jqgrid при получении идентификатора записи в диалоге формы - PullRequest
0 голосов
/ 29 марта 2012

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

{name:'e_info_id',index:'e_info_id', width:60, sorttype:"int",key: true}

и для читателя json я установил его как

 jsonReader : { repeatitems: false ,id: "e_info_id",root:"rows"}

Теперь, когда я нажимаю на иконку Add / Edit, открывается диалоговое окно Edit, так как я не установил e_info_id как editable:true, что поле id не будет отображаться в диалоговом окне формы, но когда я нажимаю на submit, я не являюсьбыть в состоянии получить доступ к этому идентификатору в следующей функции

 onclickSubmit: function (options, postdata) {

          postdata.e_info_id // is undefined 

 }

, но как только я определю e_info_id как editable = true, postdata.e_info_id теперь будет иметь значение.Теперь я вижу это довольно странно, и я не знаю, как избавиться от этого

{name:'e_info_id',index:'e_info_id', width:60, sorttype:"int",key: true,editable:true}

Более того, чтобы не дать пользователю случайно обновить e_info_id, я пытался скрыть его как следует и сохранить редактируемый: true просточтобы получить значение e_info_id в $.jgrid.edit.

   beforeShowForm: function(form) { $('#tr_e_info_id', form).hide(); }

Но проблема в этом, когда я дважды щелкаю по строке таблицы, прежде чем ShowSormForm не срабатывает, поэтому появляется поле e_info_id.

ondblClickRow: function(rowid) {
        $(this).jqGrid('editGridRow',rowid);
    }

теперь у меня нет обходных путей, поэтому в основном моя проблема не в том, чтобы показать поле e_info_id в диалоговом окне добавления / редактирования и получить значение e_info_id в onclickSubmit

1 Ответ

1 голос
/ 30 марта 2012

Почему вы используете key: true и jsonReader : { id: "e_info_id",...}?Я думаю, что это ваша главная проблема.Я рекомендую вам удалить id: "e_info_id" и использовать только key: true.

Более того, я не понял значения столбца 'e_info_id'.Если вы заполните jqGrid правильными id атрибутами в строках (id из <tr>), тогда идентификатор будет отправлен на сервер под именем 'id' (если вы удалите id: "e_info_id" из jsonReader),Вы хотите показать колонку для пользователя вообще?Вы хотите, чтобы пользователь видел информацию в форме «Редактировать»?Возможны все варианты, но это не зависит

...