Это вопрос, связанный с тем, как люди обрабатывают ситуацию в пользовательском интерфейсе веб-приложения. У меня есть страница, которая отображается, когда пользователь хочет создать/отредактировать родительский объект. У него есть несколько атрибутов, связанных с этим родительским объектом, а также кнопка «Сохранить», позволяющая сохранить родительский объект. Каждый родительский объект имеет набор дочерних объектов (отображаемых в сетке на той же странице), и на этом же экране пользователь может добавлять/изменять/удалять дочерние объекты, как показано ниже:
Parent Information:
ParentName: [textbox]
ParentDate: [datepicker]
Children Information:
ChildName ChildDate Delete
[textbox] [datepicker] [button]
[textbox] [datepicker] [button]
[textbox] [datepicker] [button]
[Add Child button]
[Save button] [Cancel button]
Обратите внимание, что я действительно хочу иметь кнопки только тогда, когда мне это нужно: одну кнопку «Сохранить» (чтобы управлять ими всеми!). Я пытаюсь включить следующий сценарий, когда пользователь создает или редактирует родительский объект:
- Пользователь изменяет родительскую информацию (еще ничего не сохраняется в базе данных)
- Пользователь добавляет/изменяет/удаляет дочерние объекты (еще ничего не сохраняется в базе данных)
- Пользователь нажимает «Сохранить» (и вся информация о родителях и дочерних элементах сохраняется).
С помощью всевозможных причудливых вещей в стиле AJAX я могу сделать это без обновления страницы, но тем временем я каждый раз сохраняю все промежуточные изменения в сеансе пользователя на веб-сервере. Например: пользователь нажимает кнопку «Добавить» (чтобы добавить новый дочерний объект), поэтому я иду в сеанс, извлекаю родительский объект, который я уже поместил туда, и добавляю новый дочерний объект в коллекцию дочерних объектов, затем привязываю это в список данных. В следующий раз, когда будет нажата кнопка «Добавить», я должен сохранить изменения, внесенные пользователем в первую дочернюю запись, обратно в объект, который я получил из сеанса, и повторить процесс.
Это безумие? Возможно, я пытаюсь навязать «состояние» веб-приложению «без сохранения состояния» и не должен этого делать. Я понимаю концепцию редактирования отдельных строк в сетке, но это кажется глупым для маленьких экранов, где есть пара фрагментов информации для родителя, пара для каждого дочернего элемента, и для пользователя требуется много дополнительных кликов. .
Я думаю, что этот вопрос не зависит от технологии, но на всякий случай вам нужно знать, что это веб-приложение ASP.NET.