1

我有一个实体数据模型,它抽象了一个底层的MSSQL数据库。我有一个连接到GridView的EntityDataSource。 GridView有很多列 - 大多数是BoundFields,但其中一个是EditItemTemplate。这里面的模板,我放在下面:将EditItemTemplate DropDownList保存到数据库?

<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中选择的值保存到数据库?

回答

4

我认为DropDownList的SelectedValue的绑定丢失。假设你是在一个网格或表格编辑User具有RoleID属性指的是分配的作用,这可能是这样的:

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

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

+0

EnableUpdate已被设置为true的GridView的EntityDataSource,即entitydatasource仅用于填充下拉列表... – davemackey 2011-04-15 19:09:13