У меня есть JQGrid с включенным редактированием на месте.
Поле базы данных
Имя (обязательно)
Фамилия (не обязательно)
следующие сценарии:
1. сетка с кнопками Редактировать и Удалить.
2. затем нажмите «Изменить» («Редактировать», «Удалить» - скрыть) и («Сохранить», «Отмена» - отобразится).
3. Я очистил значение из текстового поля FirstName.
4. Я нажал кнопку «Отправить», после чего отобразится сообщение «Имя: Поле обязательно для заполнения» Это правильно
5. но за этим моя кнопка (Сохранить, Отмена заменит на Редактировать, Удалить , это неправильно )
Я бы хотел поставить контрольную точку в следующей функции
function inplaceSave(id) {
//Check point is required for Any Validation violation or unsuccessful save
jQuery('#list').saveRow(id);
//if it is success then following method should called else couldn't
changeActionState('save', id);
}
следующий код:
jQuery(document).ready(function () {
//$.jgrid.defaults.loadtext = '';
jQuery("#list").jqGrid({
url: '@Url.Action("JQGridGetGridData", "TabMaster")',
datatype: 'json',
mtype: 'GET',
colNames: ['col ID', 'First Name', 'Last Name', ''],
colModel: [
{ name: 'colID', index: 'colID', width: 100, align: 'left', searchoptions: { sopt: ['eq', 'ne', 'cn']} },
{ name: 'FirstName', index: 'FirstName', width: 150, align: 'left', editable: true, editrules: { required: true, number: true, minValue: 40, maxValue: 100} },
{ name: 'LastName', index: 'LastName', width: 150, align: 'left', editable: true },
{ name: 'Edit', index: 'Edit', width: 70, align: 'center', editable: false, formatter: editFmatter, unformat: unformatEdit }
],
pager: jQuery('#pager'),
hidegrid: false,
rowNum: 100,
rowList: [10, 50, 100, 150],
sortname: 'colID',
sortorder: "asc",
viewrecords: true,
multiselect: false,
//rownumbers: true,
imgpath: '@Url.Content("~/Scripts/themes/steel/images")',
caption: 'Tab Master Information',
editurl: '@Url.Action("JQGridEdit", "TabMaster")'
}).navGrid('#pager', { edit: false, add: false, del: false, search: false, refresh: false });
});
function inplaceEdit(id) {
jQuery('#list').editRow(id);
changeActionState('edit', id);
}
function inplaceCancel(id) {
jQuery('#list').restoreRow(id);
changeActionState('cancel', id);
}
function inplaceSave(id) {
jQuery('#list').saveRow(id);
changeActionState('save', id);
}
function changeActionState(action, id) {
if (action == 'edit') {
jQuery('#action_edit_' + id).css('display', 'none');
jQuery('#action_delete_' + id).css('display', 'none');
jQuery('#action_save_' + id).css('display', 'block');
jQuery('#action_cancel_' + id).css('display', 'block');
}
else {
jQuery('#action_edit_' + id).css('display', 'block');
jQuery('#action_delete_' + id).css('display', 'block');
jQuery('#action_save_' + id).css('display', 'none');
jQuery('#action_cancel_' + id).css('display', 'none');
}
}