在DetailsView或FormView之外创建实体

时间:2012-08-24 03:59:34

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

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

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

我认为这样做的方法是遍历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'.

我即将开始研究涉及与ObjectContext绑定的EntityDataSource和/或DetailsView s的解决方案,但在我看来,如果我来的话从那一侧开始,我不妨使用普通的TextBox es,只需循环遍历它们,在代码中创建所有实体内容,而不是让数据绑定功能发挥作用。

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

非常感谢 mcalex

1 个答案:

答案 0 :(得分:1)

我是个白痴。

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

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