发生异常时,将值添加到下拉列表中

本文关键字:添加 下拉列表 异常 | 更新日期: 2023-09-27 18:29:21

我有一个ASP.NET(4.0)web应用程序。该web应用程序有一个包含下拉列表的表单视图。下拉列表的填充方式如下:

<asp:DropDownList ID="ddlStaff" runat="server" 
   DataSourceID="StaffDatasource" DataTextField="StaffName" 
   DataValueField="StaffName" AppendDataBoundItems="True" 
   SelectedValue='<%# Bind("Staff") %>' >
   <asp:ListItem Value=""></asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="StaffDatasource" runat="server" 
   ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
   SelectCommand="*****">
</asp:SqlDataSource>

工作人员列表不断变化,因此问题是SelectedValue抛出错误,因为该工作人员已不存在。

我知道您可以检查列表中是否存在该项并捕获异常。我想知道的是,如果"不存在"的工作人员不存在,是否有办法在下拉列表中显示他们?虽然没有列出姓名,但员工姓名与记录一起存储。我之所以要这样做,是因为用户需要查看谁被分配给了该记录,即使他们已经不在了。

编辑:更多详细信息

这就是用户希望它工作的方式。

  • 缺少员工姓名(如果未列出,则会选择此项,并且应仅显示该记录)
  • Null
  • 亚当
  • 阿比盖尔
  • 布兰登

如果可以这样做,那么我可以让他们知道,当抛出异常时,我会让它选择null。

发生异常时,将值添加到下拉列表中

如果成员不在列表中,他就不存在。你为什么想要这种行为?用户是否需要旧成员?

您可以创建一个包含所有新旧成员的列表,但您必须对列表进行编码,而不是声明。使用源代码管理无法做到这一点。您可以简单地提供一个集合用作数据源。

希望这能有所帮助。