0

我有一个 ASP.NET 网络表单,除了其他控件之外,它还有一个用于输入值的文本框、一个用于显示值的文本框、一个下拉列表框和一个搜索按钮。我正在使用以下代码来显示搜索结果:

if (TextBox3.text == DropDownList3.Items.FindByText(TextBox3.Text).Value) 
{
  etc... 
}

DDL3 从 DataTable 中获取其值,输入到 TextBox3 中的值应与 DDL3 值之一匹配,以在单击搜索按钮后显示搜索结果。当 TextBox3 值为 null 或与 DDL3 中的任何值都不匹配时,会发生 NullReferenceException 错误。这是合理的;但是,我花了几个小时试图处理这个错误,但我似乎无法弄清楚如何解决它。我曾尝试添加额外的“If”语句,例如“if TextBox3 == null 等...;但是,无济于事。我应该如何更改上述 if 语句以补偿空值或错误值?

谢谢,

DFM

4

2 回答 2

2

尝试使用 try...catch 处理该异常:

try {
    TextBox3.text = DropDownList3.Items.FindByText(TextBox3.Text).Value
} catch (NullReferenceException ex) {
    TextBox3.text = "(none)";
}
于 2009-05-14T15:07:45.817 回答
1

在检查其值之前,您应该检查该项目是否存在于列表中。

if (DropDownList3.Items.FindByText(TextBox3.Text) != null)
{
   // ...
}
于 2009-05-14T15:10:36.730 回答