Страница содержит данные заголовка заказа в форме и детали заказа в jqGrid.
Деталь может быть создана или изменена с использованием встроенного редактирования, редактирования или добавления формы.
Если новая деталь создана и сохранена, но заголовок заказа еще не сохранен, возникает исключение БД.
Как сохранить заголовок заказа до или вместе с сохранением строк подробностей.
Возможны две возможности:
- Заставить jqGrid отправить форму заказа, вызвав SaveDocument () перед добавлением строки с описанием.
или
- Отправка данных заказа вместе со строкой заказа в Добавить контроллер.
Есть идеи, как это реализовать?
<script>
var grid = $("#grid");
grid.jqGrid({
url: 'GetData',
datatype: "json",
mtype: 'POST',
scroll: 1,
multiselect: true,
multiboxonly: true,
scrollingRows : true,
autoencode: true,
prmNames: {id:"_rowid", oper: "_oper" },
colModel: <%= Model.ColModel() %>,
gridview: true,
toppager: true,
viewrecords: true,
editurl: 'Edit',
rownumbers: true,
ondblClickRow: function(rowId) { beginEdit(rowId) },
});
function SaveDocument() {
// Returns false if order detail adding should be cancelled
var res;
$.ajax({ type: "POST",
async: false,
url: 'AddOrder',
data : $("#Form").serializeArray(),
error: function (jqXHR, textStatus, errorThrown) {
alert('Order save is cancelled, correct and try again'); res=false;
}
success: function (data, textStatus, jqXHR) { res= true; }
});
return res;
}
</script>
<form id="Form" onsubmit='SaveDocument(); return false;'>
Order Date <input name='orderdate'>
Order number <input name='ordernumber'>
<input type='submit' value='Save' />
</form>
<div id="grid1container" style="width: 100%">
<table id="grid">
</table>
</div>