У меня есть jqGrid, где я хотел бы проверить данные о ячейке и публиковать только столбцы, данные которых были изменены.jqgrid - встроенное редактирование, запись только измененных данных
Рассмотрим это мой colModel
colModel: [{
name: 'I_PK',
index: 'u.I_PK',
align: 'right',
editable: false,
sopt: ['cn', 'eq', 'ne', 'lt', 'le', 'gt', 'ge', 'bw', 'ew', 'nc']
}, {
name: 'W3LabelSelected',
index: 'u.W3LabelSelected',
align: 'center',
width: 170,
editable: false,
edittype: 'checkbox',
formatter: "checkbox",
search: false,
formatoptions: {
disabled: false
},
editoptions: {
value: "1:0"
}
}, {
name: 'I_ItemNumID',
index: 'u.I_ItemNumID',
align: 'right',
editable: true,
editoptions: {
dataEvents: [{
type: 'focusin',
fn: function (e) {
var elem = e.target;
setTimeout(function() {
elem.select();
}, 50);
}
}]
}
}, {
name: 'Quantity',
index: 'u.Quantity',
align: 'right',
editable: true,
editoptions: {
dataEvents: [{
type: 'focusin',
fn: function (e) {
var elem = e.target;
setTimeout(function() {
elem.select();
}, 50);
}
}]
}
}],
В этой сетке, два из моих столбцов для редактирования. Теперь предположим, что если я вношу изменения в один из столбцов любой строки в встроенном редактировании, тогда должно быть опубликовано только значение этой ячейки. Текущая функциональность публикует все ячейки этой конкретной строки. Это возможно?
Я нашел несколько вопросов here и there об этом, но ни один из них не касается этой конкретной проблемы.
В принципе идея, о которой я могу думать, заключается в том, что перед сохранением, если я могу каким-то образом сравнить исходные данные всех редактируемых ячеек этой строки с новым значением перед отправкой, я могу исключить ячейки, данные которых имеют не изменен и только после ячейки, которая изменилась.
Образец сетки: http://jsfiddle.net/dipenshah8/HJema/203/
Привет @Oleg спасибо это прекрасно работает. Один из вопросов, который у меня есть, заключается в том, что в одной из моих других сеток я использую datepicker для редактирования значений datetime этого столбца. Когда я пытаюсь изменить это поле без внесения изменений, и если я попытаюсь его сохранить, он все равно будет отправлен. Это происходит только в случае поля datetime. Я поставил демо [здесь] (http://jsfiddle.net/dipenshah8/HJema/207/), чтобы прояснить мою проблему. Не могли бы вы взглянуть, когда будете свободны? –
@ DipenShah: Добро пожаловать! Я исправил код. См. ** ОБНОВЛЕНО ** часть ответа и модифицированное демо. – Oleg
Спасибо. Это устранило мою проблему. Ты удивительный. –