2010-01-05 3 views
0

Я иду из мира дельфий, и я хочу создать интерфейс мастера/детали, например Order and Products.
Я уже делал действия для отображения данных с помощью полей и jqGrid. Я хочу знать, как сделать возможным добавлять линии, редактировать или удалять их, но просто внесите изменения в db, когда пользователь подтвердит изменения в главном.
На Дельфи я хотел бы использовать TClientDataSet со всеми в изменениях памяти и только после подтверждения будет выполнять их внутри транзакции, как:
BEGIN
Master.Post
FOREACH Line IN Lines Line.Post
COMMIT

Таким образом, в резюме, я не знаю, как держать в памяти массив строк в сетке и как отправить их обратно на сервер для совершения.
Любая помощь будет оценена по достоинству. Заранее спасибо.Мастер-деталь с jqGrid + Asp.Net MVC и транзакция

ответ

0

Вам нужно будет отслеживать изменения на стороне клиента, возможно, используя некоторые скрытые поля и/или поля формы в вашей сетке. Когда строка удаляется (которая ранее существовала в db), вам нужно добавить ее id в поле, содержащее строки для удаления. Строки, которые добавлены, должны иметь связанные поля формы, содержащие их данные. Когда мастер совершается, вы свернете весь набор полей в POST и отправьте его обратно на сервер.

Используя LINQ to SQL, вы должны создать контекст данных, получить главный объект, а затем удалить связанные объекты (из скрытого поля идентификаторов), которые отмечены таким образом, и создать/добавить новые связанные объекты, которые не существуют, прежде чем принимать значения из соответствующих полей формы. Затем вы сделаете SubmitChanges, и все операторы будут выполняться в рамках одной транзакции.

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