ASP.NET设置不属于列表的SelectedValue不会触发异常

Dev*_*ter 2 vb.net asp.net webforms drop-down-menu

我有一个ASP.Net表单,我使用DropDownList控件来显示从表中检索的数据.但是,将DropDownList的SelectedValue设置为下拉列表中不存在的值不会触发异常.

Try
    dropDownList.SelectedValue = value
Catch ex as Exception
    Throw
End Try
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,如果我指定一个不属于列表项的值,它不会抛出异常.它只是在呈现HTML时选择列表中的第一项.

有什么想法吗?

顺便说一下,我有一个空白(String.Empty)项作为列表中的第一项.我还使用DataBind()将listItem绑定到DataTable.这有什么不同吗?

Dev*_*ter 8

谢谢你的回答.我最终做的是使用Dropdownlist的FindByValue()方法,看看列表中是否存在该值:

If Not DropDownlist.Items.FindByValue(value) Is Nothing Then
    ' do what the Exception is supposed to do '
Else
    DropDownList.SelectedValue = value
End If
Run Code Online (Sandbox Code Playgroud)

如果传递的参数不属于列表,则FindByValue()返回Nothing.我避免使用异常(处理繁重)来捕获问题,它完全按照我的需要工作.

  • 我意识到这已经晚了 9 年,但只是想指出,由于双重否定,你的逻辑倒退了,开头不应该有一个“不”。 (2认同)