当数据集中不存在SelectedValue时,如何抑制ArgumentOutOfRangeException

我有一个下拉列表,它使用objectdatasource来填充。返回的数据集是活动位置列表。我们不删除数据,因此我们使用表中的bDeleted列进行软删除。 在某些情况下,在填充ddl时,绑定SelectedValue时会出现ArgumentOutOfRangeException错误,因为某个位置可能已被停用,并且未在列表中返回。 在我看来应该有一种方法来压制这个,而不是选择一个值。 我喜欢在另一篇帖子中给出的答案,建议用红色手动添加一个条目,但我不知道在哪里/怎么做。我是否需要在代码页上设置事件处理程序以捕获此错误。这太晚了吗? 任何帮助/建议都会得到肯定。 谢谢 帕特里克     
已邀请:
我认为抑制异常是一种好习惯。您可以随时在下拉列表中执行FindByText或FindByValue,如果它存在则仅设置所选值。
Combobox.FindByText(someText).Selected = true;
要么
Combobox.FindByValue(someValue).Selected = true;
    
您应该避免某人可以“删除”仍在使用的位置或“删除”相关记录(将其标记为已删除,如
bDeleted
)。 您不应该使用异常来处理正常行为。 您应该更改DropDownList的SelectCommand以获取“已删除”但仍在某处使用的位置。然后,您可以检查该位置是否已删除,并在已删除的ListItems(Locations)上应用不同的css-class:
DropDownList1.Items[1].Attributes.Add("class", "deleted");
    

要回复问题请先登录注册