2011-04-05 36 views
0

我有一个可以随时更改的选项列表(例如“活动用户”)的下拉列表。另一个数据源可能包含历史数据,但我希望使用“活动用户”下拉列表来对付它。这意味着一个ArgumentOutOfRangeException将被抛出,所以我想抓住它,并将所需的条目即时插入到下拉列表中。DropDownList - 动态添加缺失项目以避免ArgumentOutOfRangeException

我已经看到一些建议,指向覆盖下拉列表中的ondatabinding事件,我设法做到这一点,因为我可以创建一个静态listitem例如“Value does not exist”并绕过异常。

但是,我希望而不是“价值不存在”,所以显示我们试图在DDL中找到的实际值。

ondatabinding传递了一个标准的EventArgs项目,它没有提供太多的内容,我可以看到有一个DataListItemEventArgs类 - 它是否以任何方式与下拉列表关联?我试图在EventArgs直播,但没有工作...

所以有什么办法 - 在ondatabinding - 发现我们试图在dll上设置的值,这会导致ArgumentOutOfRangeException?

干杯!

PS是类似这样的问题,我认为:https://stackoverflow.com/questions/3671556/dynamically-add-item-to-dropdownlist

回答

0

如果您选择的记录中包含非活动用户,则可以重新创建您的SQL(如果这是您正在使用的),以选择所有活动用户以及任何具有您传入的id的记录。你正在使用一些其他的持久性技术,还有其他的代码来解决它。总而言之,在绑定网格之前,它可能非常容易(在ASP.NET模型中)将数据合并到单个集合中,然后在除了一些简单的任务(如添加'< - 选择一个 - - >'作为例子列表的开头)。

+0

谢谢..似乎这是共识,所以我会走那条路。 – 2011-04-05 17:35:09

0

我认为最简单的办法是改变下降的数据源到包括当前和历史的用户。