ASP.NET Web窗体DropDownList具有SelectedValue,因为它不存在于
发布时间:2020-12-16 00:21:41 所属栏目:asp.Net 来源:网络整理
导读:首先有一些问题( DropDownList has a SelectedValue which is invalid because it does not exist in the list of items, DropDownList “has a SelectedValue which is invalid because it does not exist in the list of items”, asp:DropDownList Erro
首先有一些问题(
DropDownList has a SelectedValue which is invalid because it does not exist in the list of items,
DropDownList “has a SelectedValue which is invalid because it does not exist in the list of items”,
asp:DropDownList Error: ‘DropDownList1’ has a SelectedValue which is invalid because it does not exist in the list of items)关于这个问题,并提出了解决方法,但我的问题是真的为什么发生这种情况。更重要的是,我对建议的解决方法不满意,我觉得他们很丑陋。
所以有一个页面有一个下拉列表和一个按钮: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="TestWebApplication.WebForm2" ViewStateMode="Disabled" %> <html lang="en" > <body> <form id="form1" runat="server"> <div> <asp:DropDownList ID="ddlTest" runat="server"> </asp:DropDownList> <asp:Button Text="Test" ID="btnTest" runat="server" onclick="btnTest_Click" /> </div> </form> </body> </html> 我将ddlTest绑定在Page_Init上的某些项目,然后在btnTest_Click中再次绑定: using System; namespace TestWebApplication { public partial class WebForm2 : System.Web.UI.Page { protected void Page_Init(object sender,EventArgs e) { //SelectedIndex is -1,SelectedValue is "",SelectedItem is null ddlTest.DataSource = new[] { 1,2,3 }; ddlTest.DataBind(); ddlTest.SelectedValue = "3"; } protected void btnTest_Click(object sender,EventArgs e) { //SelectedIndex is 2,SelectedValue is "3",SelectedItem is {3} ddlTest.ClearSelection(); //SelectedIndex is 0,SelectedValue is "1",SelectedItem is {1} ddlTest.SelectedIndex = -1; //Nothing changes including SelectedIndex ddlTest.SelectedValue = ""; //Nothing changes including SelectedValue ddlTest.Items.Clear(); //SelectedIndex is -1,SelectedItem is null ddlTest.DataSource = null; //Nothing changes except for the DataSource property ddlTest.DataSource = new[] { 1,2 }; ddlTest.DataBind();//Exception! //'ddlTest' has a SelectedValue which is invalid because it does not exist in the list of items. //Parameter name: value } } } 为什么我得到例外我尝试过不同版本的这些版本,它们都不工作。我尝试仅使用ClearSelection,但仍然有相同的异常。这个错误在控制或我想念的东西。其他问题的难处理解决方案是唯一的解决方案吗? 注意 – 即使删除按钮并且所有代码都在单个事件处理程序中移动,该错误也是可重现的。只要绑定一次设置所选值并再次绑定。 解决方法
我在Connect上提交了一个错误。它被解决为“不会修复”,这在我看来意味着它实际上是一个错误。提供了解决方法:
ddlTest.Items.Clear(); ddlTest.SelectedValue = null; https://connect.microsoft.com/VisualStudio/feedback/details/666808/asp-net-dropdownlist-selectedvalue-is-persisted-which-results-in-exception-if-the-control-is-databound-second-time 我想这个答案。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 使用客户端标记链接相对于Application root
- asp.net-mvc – 在ASP.NET MVC中禁用布局?
- 在asp.net中制作某些页面的最佳方法是什么?需要登录?
- asp.net-mvc – MVC中的部分视图
- asp.net-mvc – ASP.NET MVC在Html帮助器中使用部分渲染
- asp.net – 无法在Page回调中调用Response Redirect?
- asp.net-mvc-3 – asp.net mvc的telerik grid的开源替代品?
- asp.net-mvc-4 – 错误:在VS2012中将MVC4升级到MVC5
- asp.net-mvc – 使用partialview时,HttpPostedFileBase始终
- ASP.NET – 如何检查浏览器支持html5?
推荐文章
站长推荐
- 尝试调试我迁移的ASP.NET(WebForms)应用程序时出
- asp.net-mvc-3 – 列中的MVC3 WebGrid自定义文本
- asp.net-mvc – 在MVC中保存文件对话框
- asp.net-core – 使用IdentityServer 4和WS-Fede
- .NET Core的日志[3]:将日志写入Debug窗口
- asp.net-mvc – Asp MVC不引人注目的客户端验证始
- asp.net-mvc-4 – 将模型绑定到ASP.NET MVC4中的
- asp.net-mvc-3 – 未调用FluentValidation验证程
- asp.net – 如何在VB.net中处理SqlDataReader nu
- asp.net-mvc – MVC 4中app.config的等价物
热点阅读