【问题标题】:DropDownList - adding missing items on the fly to avoid ArgumentOutOfRangeExceptionDropDownList - 动态添加缺失的项目以避免 ArgumentOutOfRangeException
【发布时间】:2011-04-05 16:16:46
【问题描述】:

我有一个下拉列表,其中包含可能更改的选项列表(例如“活跃用户”)。另一个数据源可能包括历史数据,但我希望对它使用“活跃用户”下拉列表。这意味着 ArgumentOutOfRangeException 将被抛出,所以我想抓住它,并将所需的条目插入到下拉列表中。

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

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

ondatabinding 传递了一个标准的 EventArgs 项目,它没有提供太多可做的事情,我可以看到有一个 DataListItemEventArgs 类 - 这是否与下拉列表相关联?我在 EventArgs 上尝试了直接广播,但没有奏效......

那么有什么方法 - 在 ondatabinding 中 - 找出我们试图在 dll 上设置的值,这会导致 ArgumentOutOfRangeException?

干杯!

ps 我认为这与这个问题相似:https://stackoverflow.com/questions/3671556/dynamically-add-item-to-dropdownlist

【问题讨论】:

    标签: asp.net vb.net data-binding drop-down-menu


    【解决方案1】:

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

    【讨论】:

    • 谢谢.. 看来这是共识,所以我会走那条路。
    【解决方案2】:

    我认为最简单的做法是更改下拉列表的数据源以包括当前用户和历史用户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      • 2015-05-27
      • 2011-07-12
      相关资源
      最近更新 更多