2014-11-06 86 views
1

我有一个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,因为工作人员已经不存在抛出一个错误。

我知道你可以检查项目是否存在于列表中并捕获异常。我想知道的是,如果有一种方法可以在下拉列表中显示“不存在”职员,如果他们不存在?虽然名称未列出,但员工姓名与记录一起存储。我想这样做的原因是因为用户需要查看谁被分配到该记录,即使他们不在那里。

编辑:更多详细信息

这是用户希望如何工作的。

  • 失踪人员的名字(这将被选中,如果没有上市,只能显示该记录)
  • 亚当
  • 阿比盖尔
  • 布兰登
  • .....

如果可以做到这一点,那么我可以让他们知道,我会让它选择空当前ception被抛出。

回答

1

如果该成员不在列表中,他不在场。你为什么要这样的行为?用户是否需要老成员?

你可以创建一个包含所有成员的新旧列表 - 但是你将不得不编码没有声明的列表。你无法使用源代码控制。您可以简单地提供一个集合以用作数据源。

希望这有所帮助。

+0

我添加了更多细节。公司需要记录谁被分配到该记录的历史记录,即使他们不存在。我想将它变成一个文本框,以便他们可以输入员工姓名,但他们真的很喜欢下拉列表,因为它很方便。 – 11011 2014-11-06 18:20:49

+0

好吧,我看到 - 我将创建列表 - 与代码隐藏查询的组合 - 使用户的集合,并将其作为数据源。或者,也许你应该为老成员创建两个表格,为新成员创建一个表格并加入他们。并使用结果行,然后你绑定将工作。您应该只使用selectedIndex = -1,而不要选择null IMO。 – riceman 2014-11-10 19:47:12

相关问题