仅在select参数有效时绑定到ObjectDataSource

时间:2018-06-30 04:09:16

标签: c# asp.net data-binding webforms objectdatasource

我有一个页面,其中包含一个通过代码手动绑定的下拉菜单。该下拉菜单的数据具有“请选择一个值”类型的虚拟条目作为其第一个元素,以强制用户手动选择一个有效值。此默认条目还具有基础值“ -1”,该值在后端代码中用于表明它是无效值。

当我尝试使用此下拉列表的SelectedValue作为ObjectDataSource控件的选择参数时(通过ControlParameter集合内的SelectParameters),我无法防止使用此无效的“ -1”值进行初始数据选择:将数据绑定到下拉列表后,我的选择方法将以“ -1” ID命中,这实际上会导致崩溃,因为不存在具有该ID的对象在我的数据集中。

我尝试将ControlParameter s DefaultValue属性设置为“ -1”,以希望ODS不会检测到更改,但是我猜想它正确了,然后尝试使用该值来获取数据在初始负载下。

是否有一种方法可以清楚地告诉数据源“ -1”应为无效值,并且不应尝试使用它来检索数据,而应等待有效值?如果没有,将这个默认值从“ -1”更改为“”或null是否可以正常工作?这将需要我做出一些不重要的改变,但我认为这是值得的。

我知道我可以处理ODS的OnSelecting事件,检查下拉列表或参数值,并在出现“ -1”的情况下手动取消选择,但是我觉得这很棘手,首先要达到声明式数据源的目的,所以我宁愿尽量避免使用它。我还想避免在实际的选择方法中添加任何其他智能,以忽略“ -1”,因为这将创建不必要的代码分支,从而使以后的维护工作变得更糟。

0 个答案:

没有答案