Master-Detail с jqGrid + Asp.Net MVC и транзакции - PullRequest
0 голосов
/ 05 января 2010

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

1 Ответ

0 голосов
/ 05 января 2010

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

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

...