如何:将 Web 控件绑定到 EntityDataSource
更新:2007 年 11 月
当与 EntityDataSource 控件一起使用时,ListView、FormView、DetailsView 和 GridView Web 服务器控件会提供自动读取、插入、更新和删除功能。您可以轻松地在这些控件的设计图面上配置 HTML 元素,并将它们数据绑定到 EntityDataSource 控件。
将 Web 服务器控件绑定到 EntityDataSource
ListView、FormView、DetailsView 和 GridView 控件的设计非常相似。使用以下步骤将其中一个 Web 服务器控件绑定到 EntityDataSource 控件:
创建 ASP.NET Web 应用程序。
将项目配置为使用 Entity Framework,定义项目的实体数据模型 (EDM),并重新生成项目。有关更多信息,请参见如何:使用实体数据模型向导 (Entity Framework)。
将控件拖到网页设计图面上。
配置 EntityDataSource。有关更多信息,请参见配置 EntityDataSource 控件。
将控件配置为使用 EntityDataSource 控件。
说明: |
---|
由于在处理实体对象的导航属性时存在 Web 服务器控件设计器限制,因此必须手动编辑代码隐藏页,移除项模板中导航属性名称中的括号。 |
下面的过程创建一个绑定到 EntityDataSource 控件 ListView 控件。若要完成此过程,您必须已经配置了 Entity Framework,并且已经定义了 AdventureWorks Sales 模型。有关更多信息,请参见如何:使用实体数据模型向导 (Entity Framework)。
创建一个绑定到 EntityDataSource 的 ListView 控件:
生成项目和数据模型。
将 ListView 控件的一个实例拖到设计图面上。
单击 ListView 控件上的**“>”符号,并选择“选择数据源”**。
从下拉列表中选择**“<新建数据源>”**。
当**“数据源配置”向导显示后,选择“实体”,并将 SalesOrderHeaderDataSource 指定为数据源的名称,然后单击“确定”**。
选择 AdventureWorksEntities 作为**“命名连接”和“DefaultContainerName”,再单击“下一步”**。
从**“EntitySetName”下拉列表框中选择 SalesOrderHeader,使“全选(实体值)”**复选框处于选中状态,并选中自动插入、更新和删除复选框。
单击**“完成”**。
这会创建一个绑定到名为 EntityDataSource1 的 EntityDataSource 控件实例的新 ListView 控件实例。
在 SalesOrderHeaderDataSource 的**“属性”页中,查找“Include”**属性,并添加以下字符串:
Address, Address1, Contact
这可以确保对于查询返回的每个 SalesOrderHeader 对象,查询还将返回相关的 Address 和 Contact 对象。有关更多信息,请参见定义查询路径 (EntityDataSource)。
在**“ListView 任务”框中单击“配置 ListView”**选项。
选中**“启用编辑”、“插入”、“删除”和“分页”**复选框。
单击**“确定”**。
说明: 此时,应用程序应该可以运行。但是,以下步骤是必需的,因为在处理实体对象的导航属性时存在 Web 服务器控件设计器限制。
在**“源”**视图中打开 Default.aspx 文件。
查找并移除所有 Address.AddressID、Address1.AddressID 和 Contact.ID 实例周围的方括号 [ ]。将在 ItemTemplate 和 InsertItemTemplate 中的所有 Eval 和 Bind 函数匹配项中找到这些类型。
重新生成项目并运行应用程序。