将EditItemTemplate DropDownList保存到数据库?

时间:2011-04-15 18:56:09

标签: asp.net vb.net entity-framework gridview entity-framework-4

我有一个实体数据模型,它抽象了一个底层的MSSQL数据库。我有一个EntityDataSource连接到GridView。 GridView有许多列 - 大多数是BoundFields,但其中一列是EditItemTemplate。在这个模板的内部我放置了以下内容:

<asp:EntityDataSource ID="EditRoleDataSource" runat="server"
    ConnectionString="name=pbu_checklistEntities"
    DefaultContainerName="pbu_checklistEntities" EnableFlattening="false"
    EntitySetName="Roles" />

<asp:DropDownList ID="ddlRoles" runat="server" DataSourceID="EditRoleDataSource"
    DataTextField="RoleName" DataValueField="ID" OnInit="ddlRoles_Init" />

代码执行正常,我可以单击编辑并更改选定的下拉列表,但是当我单击GridView中的“更新”按钮时,它不会使用edititemtemplate中的datavaluefield值更新数据库中的值。如何才能将所选值从edititemtemplate保存到数据库?

2 个答案:

答案 0 :(得分:4)

我认为DropDownList的SelectedValue的绑定缺失了。假设您在网格或表单中编辑具有User属性的RoleID来引用指定的角色,这可能如下所示:

<asp:DropDownList ID="ddlRoles" runat="server" DataSourceID="EditRoleDataSource"
    DataTextField="RoleName" DataValueField="ID" OnInit="ddlRoles_Init" 
    SelectedValue='<%# Bind("RoleID") %>' />

答案 1 :(得分:0)

EntityDataSource必须指定EnableUpdate =“true”。检查MSDN