Как сделать в раскрывающемся списке пустое значение, но не сохранить все ранее привязанные к данным значения - PullRequest
0 голосов
/ 30 августа 2018

У меня есть веб-форма ASP.Net. В этой форме у меня есть три выпадающих списка:

Site Store Aisle

Раскрывающийся список Site заполняется вызовом API для созданного мной API.

Раскрывающийся список Store заполняется вызовом API на основе значения в поле Site.

Раскрывающийся список Aisle заполняется вызовом API, основанным на значениях Store и Site.

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

В настоящее время мой ASP код выглядит примерно так для каждого из выпадающих списков:

<asp:DropDownList ID="dropSite" runat="server" DataSourceID="SiteDataSource" 
                      DataTextField="site" DataValueField="site" AutoPostBack="True" AppendDataBoundItems ="true">
        <asp:ListItem Text=" " Value ="" />
    </asp:DropDownList>

Причина, по которой у меня AppendDataBoundItems установлено значение true, заключается в том, что если я этого не сделаю, то в раскрывающемся списке я не смогу получить значение blank (привязка данных заменяет пустое значение и исчезает) ).

Однако давайте рассмотрим гипотетическое: я выбираю 1 в поле своего сайта, а на сайте 1 есть магазины a, b и c. a, b и c заполняются, как и ожидалось, в раскрывающемся списке store. Я меняю свой site выпадающий на 2. На сайте 2 есть магазины c, d и e. Поскольку мой AppendDataBoundItems установлен на true, теперь мой раскрывающийся список stores имеет значения (пустое значение), a, b, c, c (опять же, поскольку он существует с сайтов 1 и 2), d, e.

Есть ли способ заставить поле обновиться, но все еще иметь пустое значение? Я мог бы добавить запись в базу данных для site с пробелом в store и для каждого store с пробелом в aisle, но это выглядит как много лишних усилий / плохой дизайн.

ETA: Я готов использовать решение C # на веб-странице .aspx.cs, если необходимо, но все, что я могу найти, - это как удалить элемент из выпадающего списка, если вы уже знаете значение.

ETA: код источника данных для комментария (не уверен, насколько он полезен, но вот он):

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetSite" TypeName="Test_Site_1.Controllers.SiteController"></asp:ObjectDataSource>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...