Добавить значение в выпадающий список при возникновении исключения

1

У меня есть ASP.NET(4.0) веб-приложение. Веб-приложение имеет вид формы, содержащий раскрывающийся список. Выпадающий список заполняется так:

<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 выдает ошибку, потому что этот сотрудник больше не существует.

Я знаю, что вы можете проверить, существует ли элемент в списке и поймать исключение. Я хотел бы знать, есть ли способ отобразить "несуществующего" сотрудника в раскрывающемся списке, если они не существуют? Хотя имя не указано, имя сотрудника хранится в записи. Причина, по которой я хочу это сделать, - это то, что пользователям нужно будет увидеть, кто был назначен этой записи, даже если их больше нет.

EDIT: Подробнее

Это то, как пользователи хотели бы, чтобы он работал.

  • Отсутствует имя сотрудника (это будет выбрано, если оно не указано в списке и должно отображаться только для этой записи)
  • Ноль
  • Адам
  • камеристка
  • Brandon
  • ...

Если это возможно, я могу сообщить им об этом, и я попрошу, чтобы оно выбрало значение null, когда генерируется исключение.

Теги:

1 ответ

1
Лучший ответ

Если его нет в списке, его нет. Зачем вам это поведение? Пользователю нужны старые члены?

Вы можете создать список со всеми членами старого и нового, но вам придется закодировать список, не объявляющий. Вы не можете сделать это с помощью элементов управления источником. Вы можете просто предоставить коллекцию для использования в качестве источника данных.

Надеюсь, это немного помогло.

  • 0
    Я добавил больше деталей. Компания должна хранить историю того, кто был назначен на эту запись, даже если они отсутствуют. Я хотел бы превратить его в текстовое поле, чтобы вместо него можно было ввести имя сотрудника, но им действительно нравится выпадающий список, потому что это удобно.
  • 0
    Хорошо, я вижу - я бы создал список - с комбинацией Query в codebehind - создаю коллекцию пользователей и сделаю это источником данных. Или, может быть, вам следует создать две таблицы: одну для старых участников, другую для новых и присоединиться к ним. И используйте получившиеся строки, тогда ваша привязка будет работать. Вы должны просто использовать selectedIndex = -1 вместо того, чтобы не выбирать пустое IMO.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню