- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
希望有人能帮我解开一个小谜团....
此代码正在生产中,并在那里工作。这个问题出现在我的本地主机上(我正在测试我在发布到暂存之前所做的更改)。直到 2 天前它一直在工作,我不知道为什么它会自发停止工作。
(这是一个 .NET 3.5 Web 窗体应用程序)
我有一个可能已经报告事件的“组织”列表。该列表是从我的数据库中的组织表中填充的。
<asp:DropDownList ID="Organizations" runat="server" Width="205" AutoPostBack="True" DataTextField="Name" DataValueField="Id"></asp:DropDownList>
这是绑定(bind)列表的代码:
Organizations.DataSource = _service.ListOrganizations()
.Where(o => o.IsDeleted == false && o.ReportedBy == true)
.OrderBy(o => o.Name);
Organizations.DataBind();
Organizations.Items.Insert(0, new ListItem("Please make a selection", "-1"));
// Find the "VICTIM...." items
ListItem victim = Organizations.Items.FindByText("VICTIM");
ListItem guardian = Organizations.Items.FindByText("VICTIM'S PARENT/GUARDIAN");
ListItem child = Organizations.Items.FindByText("VICTIM'S SON/DAUGHTER");
ListItem partner = Organizations.Items.FindByText("VICTIM'S SPOUSE/DOMESTIC PARTNER");
ListItem unknown = Organizations.Items.FindByText("UNKNOWN");
// Move the "VICTIM...." items to the top of the list, under the default item
Organizations.Items.Remove(victim);
Organizations.Items.Remove(child);
Organizations.Items.Remove(guardian);
Organizations.Items.Remove(partner);
Organizations.Items.Remove(unknown);
Organizations.Items.Insert(1, victim);
Organizations.Items.Insert(2, guardian);
Organizations.Items.Insert(3, child);
Organizations.Items.Insert(4, partner);
Organizations.Items.Insert(5, unknown);
当我单击“编辑”图标查看/编辑案例的详细信息并且我的应用程序尝试填充表单时,我在尝试设置组织列表的 SelectedIndex 时收到 NullReferenceException。
Organizations.SelectedIndex = Organizations.Items.IndexOf(Organizations.Items.FindByValue(organizationId));
如果我在此行(上方)设置断点,我可以展开 Items 集合并查看它确实包含有效数据,我什至可以找到与我们正在寻找的 organizationId 相匹配的 ListItem。但是,一旦我按下 F10,就会抛出异常。
我将这一行打断,以查明是哪一部分引发了异常。
ListItem li = Organizations.Items.FindByValue(organizationId.Trim());
int idx = Organizations.Items.IndexOf(li);
我在 organizationId 上调用了 Trim() 以防出现任何不应该出现的空格。 Organizations.Items.FindByValue(organizationId.Trim());抛出异常。这对我来说毫无意义。如果该项目在列表中,为什么找不到?
屏幕截图
在这里您可以看到我们正在尝试选择的 ListItem。它确实存在于 Items 集合中。
我以为这可能只发生在一个案例中,但事实并非如此。我曾尝试编辑多个案例,但无论我尝试编辑哪个案例,填充表单时都会发生同样的事情。
欢迎所有建议/想法。预先感谢您的任何帮助。
(1) “你能准确地说出抛出的是哪个异常吗?” ...这是异常的详细信息
(2) 无法将属性或索引器“System.Web.UI.WebControls.ListControl.SelectedItem”分配给 -- 它是只读的
Organizations.SelectedItem = Organizations.Items.FindByValue(organizationId);
(3) 如果我将代码修改为这个(下面),我会得到相同的结果...它会抛出相同的异常
ListItem li = Organizations.Items.FindByValue(organizationId);
(4) “您是否尝试将其解析为 int 是否尝试检查它的长度?”
(5) 这是匹配的ListItem
(6) 刚刚将代码修改为 Organizations.Items.FindByValue(organizationId).Selected = true;
现在在该行上抛出异常。我只是为了咯咯笑而重新启动我的机器,这也没有任何效果。
最佳答案
好吧,在浪费了一天半的时间之后...这是解决方案...
我知道它最终会变得愚蠢...
因此,我达到了一定程度的绝望,导致我开始分别检查 Items
集合中的 87 个 ListItems
。 ListItems
中的两个是 null
(??),所以这解释了在这里看起来很不合适的 NullReferenceException
。一旦我做出更改以从列表中删除 null
项目,原始代码就会再次运行。
Organizations.SelectedIndex = Organizations.Items.IndexOf(Organizations.Items.FindByValue(organizationId));
感谢所有花时间帮助我解决此问题的人!
关于c# - DropDownList.Items.FindByValue() 上的 NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19985089/
我有两个 ASP.Net 下拉列表,其中的值相同,根据用户输入的不同数据从数据库填充,并且每次都有动态大小。我的情况是,我希望禁用第二个下拉列表中已在第一个下拉列表中选择的任何选项。我做了一些谷歌,大
我有两个相关的模型。 public partial class bs_delivery_type { public decimal delivery_id { get; set; }
我需要能够根据先前 DropDownList 的选择来填充 DropDownList。 我注意到在 SO 上有很多类似的主题,不幸的是,我需要在不使用 AJAX 调用的情况下完成此操作,并且需要在 M
我无法在 ASP.NET MVC 应用程序的 Create View 中获得我们想要的功能。 我们的 Create View 中有两个 DropDownList。 一个是类别选择,第二个应该根据第一个
这个问题在这里已经有了答案: Easiest way to create a cascade dropdown in ASP.NET MVC 3 with C# (1 个回答) 关闭 9 年前。 加
有什么区别 DropDownList.ClearSelection(); 和 DropDownList.SelectedIndex = -1; 在使用下拉列表时? 编辑:我知道 MSDN 上提供的这些
这是一个常见问题,但我不知道如何使用 KendoUI 小部件和 Javascript 来解决它。我有一个 KendoGrid,其数据源来自对 Web 服务的 AJAX 调用。数据绑定(bind)到列。
我有一组问题供用户选择,其中一些问题有第二个选项列表可供选择。我的目标是有一个下拉列表,如果您选择其中一个在其 SecondaryChoiceList 中有项目的选项,那么第二个列表将出现在初始下拉列
我有一组问题供用户选择,其中一些问题有第二个选项列表可供选择。我的目标是有一个下拉列表,如果您选择其中一个在其 SecondaryChoiceList 中有项目的选项,那么第二个列表将出现在初始下拉列
我正在使用带有 ajax 工具包的 asp.net 3.5。 问题:我有一个自定义控件,在更新面板中有两个下拉列表。第一个 DDL 具有属性 AutoPostBack="true" 并且在选择时填充第
我在我的一个 ddl 上选择了其他选项,并且成功获得了该值,但同时我想在代码中的其他 ddl 上获得选项。我怎样才能获得其他 ddl 选项....?我在这里放置了我的问题的代码示例: (no
我们在我们的应用程序中使用自定义表单控件。当我们尝试在这个自定义表单控件中使用 asp dropdownlist 控件时,我得到了这个给定的异常。但是,当我使用 asp 文字控件时,我们不会收到此错误
我有两个 asp.net 下拉列表,我想用 Javascript 操作客户端。这两个下拉菜单位于模态打开内: function() 当 dropdown1.value == "me"时我想要禁用 dr
我有一个 WebForms 页面,上面有两个 DropDownList 控件,它们都包含 60-80 度的温度范围,一个用于加热,另一个用于冷却。它们在 .aspx 中声明为: 每个列表的值都使用
抱歉这个愚蠢的问题,我以前使用过 MVC,但以前从未做过这样的事情。 好吧,假设我正在实现一个门票系统,用户可以在特定时间和巴士上预订门票。 在“预订”页面中,我有2个DropDownList,其中一
我有一个 activeDropDownList 类型的字段,用户在其中选择所需的月份,并且 View “mobilizer”处理所选月份的大量查询。 但是,渲染页面后,activeDropDownLi
我试图禁用列表框中的多选,但是当我调用removeAttr('multiple')时,它会将我的列表框变成下拉列表。我不需要下拉菜单,我想保留列表框。我该如何调整才能实现这一目标?谢谢。 @Ht
我需要在 WinForm 上显示一些韩文文本。文本在我的 ListBox 控件中显示良好。相同的文本不会显示在我的 DropDownList 控件中。两个控件的字体均为 Arial 8pt。两个控件的
我有一个简单的问题。我有一个 dropDownList,我试图用存储过程中的 id 填充它。然而它似乎不起作用。这是我的下拉列表: Select new CaseFile:
绑定(bind)后下拉菜单显示以下值: 第一优先级低 第二优先级中 第三优先级高 每次回发后下拉列表显示以下值: 第一优先级低 第二优先级中 第三优先级高 第一优先级低 第二优先级中 第三优先级高 这
我是一名优秀的程序员,十分优秀!