Проблема при публикации выпадающих данных в форме редактирования на jqGrid

0

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

У меня JSON, который содержит BankId. Мне нужно показать имя BankName в jqGrid, а при редактировании формы мне нужно показать это поле как раскрывающееся со списком имен банков. Я изменил сервис, чтобы вернуть BankName в дополнение к BankId. Я показываю BankName в сетке. В режиме редактирования я использую dataurl для чтения другого JSON для BankId и BankName. Я использую 'buildSelect' для построения строки с форматированием html для раскрывающегося списка, с "значением", заданным как BankId, и "text", установленным как BankName.

Проблема заключается в том, что пользователь выбирает BankName из dropdwon и отправляет форму, представленное JSON имеет значение BankId, переданное в столбце BankName JSON.

Например, сначала строка связывается с данными ниже:

{"Id":2,"BankId":2, "BankName":"Bank of America", "EmployeeId":2232,"JoiningDate":"2001-12-23T00:00:00","SalaryAmount":30000.0,"Comments":"test"}

Когда я изменяю имя банка в раскрывающемся списке и отправлю форму, данные JSON публикуются ниже:

{"Id":2,"BankId":2, "BankName":"3", "EmployeeId":2232,"JoiningDate":"2001-12-23T00:00:00","SalaryAmount":30000.0,"Comments":"test"}

Проблема - после того, как значение параметра раскрывающегося списка установлено в BankId, BankId отправляется в столбце BankName. Я могу иметь значение BankName как поле значений, поэтому поле текстового поля и значения, которое имеет значение BankName и отправлено в BankName, опубликовано. Однако я хочу представить BankId вместо BankName в JSON, отправленном на сервер, однако BankId должен быть передан в поле BankId JSON, а не в BankName. Как я могу это достичь?

Большое спасибо,

Abhilash

Теги:
jqgrid

1 ответ

0
Лучший ответ

Я обычно использую два столбца для такого рода работ... Один для показа в BankName, который будет показывать имя банка, также он не редактируется. И другой скрыт и появится в добавлении или редактировании. Упование помогает

{ name: 'BankName', index: 'BankName', align: 'center', editable: false },
             {
                 name: 'BankId', index: 'BankId', align: 'center', hidden: true, viewable: true, editrules: { edithidden: true },
                 editable: true, stype: 'select',
                 edittype: 'select',
                 editoptions: {
                     dataUrl: url to get bank ids
                     buildSelect: function (data) {
                         var response, s = '<select>', i;
                         response = jQuery.parseJSON(data);
                         if (response && response.length) {
                             $.each(response, function (i) {
                                 s += '<option value="' + this.VALUE+ '">' + this.TEXT + '</option>';
                             });
                         }
                         return s + '</select>';
                     },
                 }

             },
  • 0
    Спасибо Янина, это сработало для меня. Большое спасибо. Однако при таком подходе раскрывающийся список не выбирает правильное значение и вместо этого по умолчанию используется первый индекс каждый раз, когда я редактирую любую строку. Есть мысли по этому поводу?
  • 0
    просто отправьте данные выпадающего столбца с сервера с другими данными, в вашем случае это BankId. И если это поможет, пожалуйста, примите это.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню