2012-02-23 70 views
3

我试着做绑定一个下拉列表,详细信息视图,但不断收到有关的下拉列表ID字段错误:绑定的DropDownList到DetailsView控件没有数据源

<asp:TemplateField HeaderText="Approval"> 
       <ItemTemplate> 
        <asp:DropDownList ID="Approved" runat="server" DataValueField="Approved" SelectedValue='<%#Bind("Approved") %>'> 
         <asp:ListItem Text="Approved" Value="Approved" /> 
         <asp:ListItem Text="Denied" Value="Denied"/> 

        </asp:DropDownList> 
       </ItemTemplate>     
</asp:TemplateField> 

错误消息如下:

'Approved'具有一个无效的SelectedValue,因为它在项目列表中不存在。 参数名:价值

什么是对下拉列表的价值附加到我的对象,以便它可以在数据库中正确创建的正确方法?我的大部分搜索都会告诉我如何将下拉列表绑定到对象数据源,但这不是我需要做的。这是一个永远不会改变的2个项目的基本下拉列表。发生

回答

2

这个错误,因为你要绑定的DropDownListDetailsView的数据源的“批准”字段的SelectedValue,但它试图分配值是不是你已经列出的两个(简称‘认可’之一和“拒绝”)。我看你有DataValueField="Approved"。你是否在代码隐藏中设置Dropdown的数据源?因为这不会将ListItems设置为DetailsView的数据源中“已批准”列中的值,所以将其设置为下拉的数据源。

根据您的逻辑,这里有一些possibilites:

  • 确保您的静态项相匹配的项目可能在DetailsView的“批准”字段中返回。或者,
  • DropDownList绑定到包含“已批准”中所有可能值的数据集,并完全删除您的静态项目。或者,
  • 在您的DropDown中设置为AppendDataBoundItems="True"并且同时包含静态和绑定数据项
相关问题