2015-11-28 2 views
0

У меня есть jqgrid с встроенным редактированием. У меня есть столбец даты с форматом d.m.Y. Я хочу, чтобы этот столбец был modified перед отправкой на сервер в формате Y-m-d, поскольку привязка модели связывает то же свойство, что и null, если я устанавливаю формат в jqgrid d.m.Y. Что делать с serialize данные before запрос на сервер?JQGrid Сериализация данных перед отправкой на сервер

В режиме встроенного редактирования у меня есть событие для отправки данных:

$(obj.grid).jqGrid('saveRow', eRowId, { 
    succesfunc: function (response) { 
    alert("success"); 
     }, 
    url: ddf.DDF+ "/Home/Edit", 
    mtype: "POST" 
    }); 

ответ

1

Прежде всего, важно отметить, что следует различать формат внутренних данных или данных, передаваемых между сервером и клиент, от данных, отображаемых пользователю. jqGrid имеет концепцию formattres, которая позволяет сгенерировать отформатированный фрагмент HTML, который будет помещен в ячейки <td> столбца. Существуют formatter: "date", которые могут использоваться для преобразования входных данных в другой формат. Если вы будете следовать логике formatters, вы бы заполнили сеткой с данными в формате Y-m-d, но дисплей данные в формате d.m.Y. Это formatoptions из formatter: "date" не содержит sendFormatted: true собственности, тогда jqGrid будет автоматически преобразовать результаты редактирования в исходном формате Y-m-d. Таким образом, вам не нужно делать какую-либо дополнительную сериализацию.

Тем не менее, если вам необходимо выполнить ручную сериализацию для встроенного редактирования, тогда вы должны определить обратный вызов serializeRowData уровня параметров jqGrid. Обратный вызов получает postData объект в качестве единственных параметров и должен возвращать либо объект, либо строку, которая будет использоваться для отправки данных на сервер.

Смежные вопросы