Я работаю с jqGrid и в моей модели есть столбец с полем даты:
colModel: [
...
{ name: 'dayin',
label: 'Day In',
formatter: 'date',
formatoptions:{newformat:"m/d/Y"},
editable: true
},
...
]
Я не изменил файл grid.local-en.js
, поэтому по умолчанию srcFormat
равен Y-m-d
, а по умолчанию newFormat
равен m/d/Y
. С сервера я получаю даты в стандартном формате Y-m-d
от MySQL. Как и ожидалось, они отображаются как m/d/Y
в сетке и при редактировании.
Проблема в том, что когда я сохраняю строку, она возвращается на сервер в формате m/d/Y
вместо преобразования обратно в значение по умолчанию srcFormat
из Y-m-d
. Я предполагал, что функция форматирования 'date'
будет автоматически обрабатывать преобразование обратно в srcFormat
при встроенном сохранении или сохранении формы. Я попытался изменить новый формат на Y-m-d
, который правильно отправляет поля даты назад и вперед, но я не хочу отображать его пользователю.
Большинство примеров, которые я нашел до сих пор, касаются только передачи информации с сервера на экран - может кто-нибудь указать мне на пример, который показывает, как вернуть дату на сервер в Y-m-d
, когда она отображается как m/d/Y
в сетке?
Я уверен, что смогу форсировать это в нескольких местах, но, похоже, должна быть простая техника, чтобы это произошло. Я думал, что код вызовет функцию unformatter (строка 5298), но это, похоже, не выполняется как часть потока отправки.
Я использую jqGrid 4.3.0, jQuery-1.6.2 и jquery-ui-1.8.16 на случай, если это известная функция, которую я пропустил в этой конкретной версии. Я пытался сделать это изначально с помощью DatePicker, но это более простой случай. Я думаю, что добавление в указатель даты будет довольно простым, как только я преодолею этот пункт.