Сохранение/редактирование родительской и дочерней информации на одной веб-странице

Это вопрос, связанный с тем, как люди обрабатывают ситуацию в пользовательском интерфейсе веб-приложения. У меня есть страница, которая отображается, когда пользователь хочет создать/отредактировать родительский объект. У него есть несколько атрибутов, связанных с этим родительским объектом, а также кнопка «Сохранить», позволяющая сохранить родительский объект. Каждый родительский объект имеет набор дочерних объектов (отображаемых в сетке на той же странице), и на этом же экране пользователь может добавлять/изменять/удалять дочерние объекты, как показано ниже:

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]

Обратите внимание, что я действительно хочу иметь кнопки только тогда, когда мне это нужно: одну кнопку «Сохранить» (чтобы управлять ими всеми!). Я пытаюсь включить следующий сценарий, когда пользователь создает или редактирует родительский объект:

  1. Пользователь изменяет родительскую информацию (еще ничего не сохраняется в базе данных)
  2. Пользователь добавляет/изменяет/удаляет дочерние объекты (еще ничего не сохраняется в базе данных)
  3. Пользователь нажимает «Сохранить» (и вся информация о родителях и дочерних элементах сохраняется).

С помощью всевозможных причудливых вещей в стиле AJAX я могу сделать это без обновления страницы, но тем временем я каждый раз сохраняю все промежуточные изменения в сеансе пользователя на веб-сервере. Например: пользователь нажимает кнопку «Добавить» (чтобы добавить новый дочерний объект), поэтому я иду в сеанс, извлекаю родительский объект, который я уже поместил туда, и добавляю новый дочерний объект в коллекцию дочерних объектов, затем привязываю это в список данных. В следующий раз, когда будет нажата кнопка «Добавить», я должен сохранить изменения, внесенные пользователем в первую дочернюю запись, обратно в объект, который я получил из сеанса, и повторить процесс.

Это безумие? Возможно, я пытаюсь навязать «состояние» веб-приложению «без сохранения состояния» и не должен этого делать. Я понимаю концепцию редактирования отдельных строк в сетке, но это кажется глупым для маленьких экранов, где есть пара фрагментов информации для родителя, пара для каждого дочернего элемента, и для пользователя требуется много дополнительных кликов. .

Я думаю, что этот вопрос не зависит от технологии, но на всякий случай вам нужно знать, что это веб-приложение ASP.NET.


person David McClelland    schedule 17.08.2009    source источник


Ответы (1)


Я уже выполнял такого рода динамическую работу по генерации форм и раньше, и я стараюсь не сохранять какие-либо данные, вводимые пользователем в сеанс. Конечно, я буду запрашивать у сервера информацию об объекте, но я не ожидаю, что сервер сохранит какую-либо информацию о состоянии, пока я не буду готов опубликовать форму.

Я не думаю, что вы сумасшедший, вы используете динамическую форму, и это нормально!

person JMP    schedule 17.08.2009
comment
Большое спасибо за вашу помощь! - person David McClelland; 25.05.2010