asp.net - 将 DropDownList 绑定(bind)到没有数据源的详细信息 View

标签 asp.net vb.net data-binding detailsview

我尝试将下拉列表绑定(bind)到详细信息 View ,但不断收到有关下拉列表 ID 字段的错误:

<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 无效,因为它不存在于项目列表中。 参数名称:值

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

最佳答案

发生此错误的原因是您将 DropDownListSelectedValue 绑定(bind)到 DetailsView 数据源的“Approved”字段,但是它尝试分配的值不是您列出的两个值之一(“已批准”和“已拒绝”)。

我看到您已设置DataValueField="Approved"。您是否在代码隐藏中设置下拉菜单的数据源?因为这不会将您的 ListItems 设置为 DetailsView 数据源中“Approved”列中的值,所以会将它们设置为下拉列表的数据源.

根据您的逻辑,以下是一些可能性:

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

关于asp.net - 将 DropDownList 绑定(bind)到没有数据源的详细信息 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9416444/

相关文章:

c# - 在后面的代码中执行时,我的存储过程总是返回零

jquery - 将 JQUERY 操作的 HTML 表数据保存到 ASP.NET 中(最好是 session )

c# - .net 2.0 的 Dispatcher.Invoke 模拟

wpf - XAM 数据网格更改过滤器下拉列表的顺序

c# - C# 和 VB.NET 之间最重要的功能区别是什么?

c# - 如何在 Windows 应用程序中双向绑定(bind)对象到组合框

c# - LIKE 的 SQL 语法帮助

asp.net - 32 位池和 64 位池之间的内存使用情况

ASP.Net 验证摘要导致页面跳转到顶部

.net - 我可以使用 VB.NET 覆盖类中声明的变量吗?