ASP.NET,在我的webform上完成任务的最佳方法?

时间:2012-03-12 19:10:32

标签: asp.net

我正在寻找有关实现以下目标的最佳方法的建议:

我有三个表 - Reports,Activities,Notes。

活动和备注与“报告”表相关。 (对于每份报告,都有许多活动和注释。)

我需要创建一个webform,允许用户创建一个新报告,然后在该报告中创建许多活动和备注。需要将所有数据写入数据库中的相应表。

我在这里遇到了逻辑问题。我尝试在同一页面上使用多个formview控件,以编程方式更新表等等。我似乎无法找到一个很好的方法来完成这个相对简单的任务。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

如果我要设计这个,我会使用两个单独的页面。第一页是一个概述页面,其中包含所有报告的网格。网格将显示一些简单的基本信息(reportid,名称,日期,注释/活动计数等)。此页面还将包含筛选网格的搜索选项。我将链接网格上的记录,将其重定向到“details.aspx?id = XXX”页面。我还有一个创建新的报告按钮,也可以重定向到详细信息页面,但没有查询字符串参数。

详情页面有3个标签。标签1将是“报告信息”。标签2将是“活动”。标签3将是“注释”。

详细信息页面将处理报告的插入和更新。如果“id”查询字符串不存在,那么您的用户想要插入新的报表,因此在这种情况下,您将隐藏选项卡2和3.您也不会执行数据绑定功能。保存选项卡1(报告)后,运行插入方法。成功插入报告后,将其重定向到details.aspx?id = NEWID,他们可以继续添加活动/备注。

如果“id”查询字符串确实存在,那么您的用户处于编辑/更新模式。在这种情况下,显示所有3个选项卡。保存到选项卡1(报告),将对报告表进行更新。

应该布置“活动和注释”选项卡,但最好显示数据。如果数据只是一个字符串,我会显示一个表单来插入一个新的活动,然后在下面,使用转发器或数据列表以列表格式显示现有的备注/活动。

希望这能让你指出正确的方向。

祝你好运!

答案 1 :(得分:0)

您是否听说过 MultiViews


<强>优点

  1. 您可以将所有三个请求保留在同一页面中。
  2. 这会减少您的往返次数。因此,请使用Server.Transfer
  3. 删除查询字符串头痛。
  4. 使用多个页面需要路由/重写功能

  5. <强>缺点

    1. 会变得很麻烦。
    2. 维护成本会很高。

    3. 如果您的要求清晰且小,则应该使用它。