在网站中添加下拉列表时出错

时间:2009-06-10 06:50:07

标签: .net asp.net vb.net visual-studio-2008

我在设计师添加了一个下拉框后提交表单时收到以下错误

System.NullReferenceException:未将对象引用设置为对象的实例。在C:\ v1.5_production_05June09 \ Default.aspx.vb中的WebApplication1._Default.collectEmailBodyText():第219行

以下是我在collectEmailBodyText()

中添加的额外两行
tempPanelDropDownBox = DirectCast(form1.FindControl(("txt_" & panelUsed & "_ddinput") + counter.ToString()), DropDownList)

tempCollector = tempCollector +“:”+ tempPanelDropDownBox.SelectedItem.Text

3 个答案:

答案 0 :(得分:2)

我猜最有可能的问题是form1.FindControl没有找到控件。我建议先执行查找控件,然后在尝试从中访问任何值之前检查它是否为空。

答案 1 :(得分:2)

正如异常所述,其中一个对象具有空值。最简单的方法是在你获得异常的行上设置一个断点,并使用类似QuickWatch的东西来评估该行的不同部分,以发现哪些部分返回null。

最明显的一个是FindControl返回null。

答案 2 :(得分:2)

正如其他海报所说,似乎对FindControl方法的调用返回Nothing(null),因此尝试访问像SelectedItem这样的属性会导致NullReferenceException

您的代码FindControl("txt_" & panelUsed & "_ddinput") + counter.ToString())正在尝试查找一个下拉列表,其中某些字符串的服务器ID连接在一起,然后在最后看起来像一个变量号。这看起来有点奇怪;你真的想要这个号码吗?当使用动态添加的控件时,我会期待类似的东西。