【问题标题】:asp.net Pattern for handling View/Edit/Insert situations用于处理查看/编辑/插入情况的 asp.net 模式
【发布时间】:2012-01-11 18:52:49
【问题描述】:

我是一个 asp.net 初学者,正在考虑设计一个具有典型 Master-Detail 视图的网站。有一个 GridView-Control,它在下面显示所有记录和详细信息视图,以编辑现有记录、添加新记录并详细显示一个。

asp.net 中有几个控件可以处理这种情况:GridView 结合 DetailsView 或 FormView。但是所有这些方法确实有一个共同点,它们似乎是为快速应用程序开发而设计的。我想使用我自己的 DAL 等等,所以我需要完全控制插入/更新语句。

处理此问题的典型 asp.net 方法是什么? 我是否应该为 Detail 视图创建一个 UserControl 来自行保存其状态(查看/编辑/...模式)?此外,视图的状态仅略有不同(例如,插入视图确实比编辑视图多一个输入控件)。似乎提到的 DetailsView 和 FormView 也无法处理这个问题,所以我有很多类似复制粘贴的代码。

我认为这是很常见的情况。在这些情况下你更喜欢什么?

【问题讨论】:

标签: asp.net design-patterns master-detail


【解决方案1】:

您可以将自定义 DAL 中的数据手动绑定到 DetailsView 或 FormView,如下所示:

this.dvw.DataSource = new[] { DAL.GetObject(1) };
this.dvw.DataBind();

或者您也可以使用 ObjectDataSource,它连接到您的 DAL 对象并在需要时调用该方法。

您还可以使用自定义用户控件并手动加载数据,这也是我在我的应用程序中采用的方法。

这实际上取决于您的架构、您想要实现的目标、您的对象模型的复杂程度以及各种其他因素。

【讨论】:

    【解决方案2】:

    对于 Master 部分,我手动构建界面,我的意思是,创建文本框、标签等。 对于详细信息部分,我使用可编辑的 GridView。这是一项乏味的任务。

    当然,您可以使用一些脚手架从数据库模型中为您的 UI 生成 ASP.Net 代码。 你可以检查这个:http://codepaste.net/b1geac

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-27
      • 2015-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多