У меня есть веб-форма 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>