c# - DetailsView 中的下拉列表

标签 c# asp.net

我已将 DropDownList 控件添加到 DetailsView,并试图让它绑定(bind)到我的更新/插入方法的“状态”参数。

<InsertItemTemplate>
<asp:DropDownList ID="States" runat="server" SelectedValue='<%# Bind("State") %>'>
<asp:ListItem Value="NY">New York</asp:ListItem>
....
</asp:DropDownList>
</InsertItemTemplate>

我已经用 50 个状态填充了 DropDownList,因此它们不绑定(bind)到任何表并且是静态项。我只是希望能够在编辑时选择一个状态,当我点击编辑时,它应该运行存储过程来编辑并将 DropDownList 的值作为@State 的参数。

不幸的是,我得到了这个错误:

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

我研究了这个问题,但一些帖子建议使用“Eval”而不是“Bind”或添加一些空值,但这并没有解决我的问题。你们对我如何摆脱这个错误有什么想法/建议吗?

最佳答案

如果 ListItems 是静态的(即在标记中定义),我相信您也应该发布它们。 请记住 ListItems 的正确语法是

<asp:ListItem Value="value" Text="displayText"></asp:ListItem>

关于c# - DetailsView 中的下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6536300/

相关文章:

c# - 如何从图库中挑选的图像中获取文件名?

c# - ServicePointManager.FindServicePoint 的用途是什么?

c# - 如果在迭代 IEnumerable 时出现异常(从 Controller 返回),AspNet.Core 将返回 200 OK and invalid Json

asp.net - 如何在 Application_Start 发生后动态添加 bundle ?

asp.net - 如何在 T 是动态的运行时从 Entity Framework 获取 ObjectSet<T>?

c# - 在 foreach 循环中编辑列表

c# - Unity3d 中多个场景切换时播放连续音乐

asp.net - 如何将页面发布到另一个页面

asp.net - FOSS ASP.Net session 复制解决方案?

asp.net - 使用 ADO.NET 在 VB 2008 中的不同网页上显示数据库