在同一网页上保存/编辑父子信息

时间:2009-08-17 21:39:11

标签: asp.net web-applications master-detail

这是一个与人们如何处理Web应用程序的用户界面情况有关的问题。我有一个页面,当用户想要创建/编辑父对象时显示该页面。它有一些与此Parent对象相关的属性,以及一个Save按钮,因此可以保存Parent。每个Parent对象都有一个Child对象的集合(显示在同一页面的网格中),在同一屏幕上,用户可以添加/修改/删除Child对象,类似于以下内容:

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. 用户点击保存(并保存所有父子信息)
  4. 通过各种花哨的AJAX-ish的东西,我可以在没有页面刷新的情况下实现这一点,但是我每次都在同时将所有中间更改保存到Web服务器上的用户会话中。例如:用户单击“添加”按钮(添加一个新的Child对象),所以我进入会话,检索我已经放在那里的Parent对象,并将一个新的Child添加到Child对象的集合中,然后绑定对于datalist。下次单击“添加”按钮时,我必须将用户对第一个子条目所做的更改保存回我从会话中检索到的对象并重复该过程。

    这是疯了吗?也许我试图强迫“状态”进入“无状态”Web应用程序,而不应该这样做。我理解在网格中进行每行项目编辑的概念,但对于小屏幕而言,这似乎很愚蠢,其中父母有几条信息,每个孩子有几条信息,而且用户需要额外点击一下

    我认为这个问题与技术无关,但万一你需要知道这是一个ASP.NET网络应用程序。

1 个答案:

答案 0 :(得分:0)

我之前也做过这种动态表单生成工作,而且我倾向于不保存任何用户对会话的输入。当然,我会查询服务器询问一个对象,但在我准备发布表单之前,我不希望服务器保存任何状态信息。

我不认为你疯了,你正在使用动态表格而且没关系!