【问题标题】:Creating Entities outside DetailsView or FormView在 DetailsView 或 FormView 之外创建实体
【发布时间】:2012-08-24 03:59:34
【问题描述】:

使用 EntityFramework,我创建了一个包含许多 DetailsViewFormView 控件的页面,以尝试捕获要保存到 sql server 的调查信息(100% 插入;不更新或删除)。涉及的表/实体包括调查、问题、响应者、响应、答案和几个类型查找。 (调查有一个问题列表,由受访者完成。受访者的回答有一个答案列表。一个答案回答一个问题。)希望一切都有意义。

我不想让用户在每个 DetailsView 或 FormView 中单击自动生成的插入按钮,我想提供一个提交按钮来插入所有新数据,这就是我目前 - 并且未成功 - 尝试编码的内容。本质上,我正在寻找一种方法来调用由每个 *Form 自动创建的插入按钮调用的命令。

我想办法做到这一点是循环通过 DetailsView 和 FormView 控件,在我进入 ObjectContext 时保存(附加?)实体,然后调用 SaveChanges() 将它们全部插入到数据库中一次。但是,我在访问新实体时遇到问题。我似乎无法通过 FormView/DetailsView 本身访问它们,而且我似乎无法访问 *Views 中的 BoundFields。

我试图将 FormViews 嵌套在 FormViews 中,因为 this 推断这是可能的,但我收到错误 Type 'System.Web.UI.WebControls.FormView' does not have a public property named 'FormView'.

我即将开始研究涉及与DetailsViews 绑定的ObjectContext 和/或EntityDataSources 的解决方案,但在我看来,如果我是从那方面来的,那么我还不如使用普通的 TextBoxes 并在它们之间循环,在代码中创建所有实体内容,而不是让数据绑定功能发挥作用。

有人可以指出我如何运行每个 *Form 的插入按钮命令以将所有新创建的实体保存在每个 DetailsView/FormView 中,或者让我知道我是否应该开始查看另一个区域(例如 ObjectContext 或 EntityDataSource)?

非常感谢
麦克莱克斯

【问题讨论】:

  • 不要对复杂的表单使用数据源和视图控件。他们没有为此做好准备。在这种情况下可以弯曲它们以工作,但它很复杂且容易出错。只需使用带有一些 javascript 的普通表单来添加新行并保留有关已删除行的信息,您将更快地完成它并且您将完全控制结果。

标签: asp.net entity-framework data-binding detailsview formview


【解决方案1】:

我是个白痴。

我只需要调用 *Form 的 InsertItem 方法。

不知道为什么我第一次阅读 API 时没有意识到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 2021-07-05
    • 1970-01-01
    相关资源
    最近更新 更多