2014-11-06 2 views
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: Подробнее

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

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

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

ответ

1

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

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

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

+0

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

+0

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

Смежные вопросы