将 DropDownList 绑定到没有数据源的详细信息视图

发布于 2025-01-08 16:30:38 字数 795 浏览 0 评论 0原文

我尝试将下拉列表绑定到详细信息视图,但不断收到有关下拉列表 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,因为它不存在于列表中的项目。 参数名称:值

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

Im trying to do bind a dropdown list to a details view but keep getting an error about the dropdown list ID field:

<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>

The error message as follows:

'Approved' has a SelectedValue which is invalid because it does not exist in the list of items.
Parameter name: value

What is the proper way to attach the value of the dropdownlist to my object so that it can be properly created in the database? Most of my searches keep telling me how to bind a dropdownlist to an object data source, but that is not what I need to do. This is a basic drop down list of 2 items that will never change.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

醉酒的小男人 2025-01-15 16:30:38

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

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

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

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

This error happens because you are binding the SelectedValue of the DropDownList to the "Approved" field of your DetailsView's datasource, but the value it's trying to assign isn't one of the two you have listed ("Approved" and "Denied").

I see you have set DataValueField="Approved". Are you setting the Dropdown's Datasource in code-behind? Because that is not going to set your ListItems to the values from the "Approved" column in the DetailsView's datasource, it's setting them to whatever the datasource for the Dropdown is.

Depending on your logic, here are some possibilites:

  • Make sure your static items match the possible items returned in the "Approved" field of the DetailsView. Or,
  • Bind the DropDownList to a dataset that includes all the possible values from "Approved", and completely removed your static items. Or,
  • Set AppendDataBoundItems="True" in your DropDown and have both static and databound items
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文