1

У меня есть три раскрывающихся списка, регион, район и город. Я хочу, чтобы выпадающий список моего округа имел параметр «Выбрать все», чтобы пользователь мог получить все города в регионе, иначе просто отобразите город на основе выбранного района. Мой запрос выглядит следующим образом:Раскрывающийся список с опцией «Выбрать все»

IF @district =-2 THEN 
(SELECT DISTINCT city 
FROM myTable 
WHERE RIGHT(Region, 3) = ?) 
ORDER BY city) 
ELSE 
(select DISTINCT city 
    FROM myTable WHERE District = ?) 
Order by city 

Я использую vb.net/sql я не мог найти какие-либо сложные сценарии случая, в моем поиске либо. Любые предложения будут оценены!

+3

Что вы хотите сказать? – RedFilter

ответ

1

Я не совсем уверен, что ваш вопрос, но обратите внимание, что запрос может упростить следующим образом:

SELECT DISTINCT city 
FROM myTable 
WHERE (@district = -2 and RIGHT(Region, 3) = ?) 
    or (@district <> -2 and District = ?) 
ORDER BY city 
1

2 пути, либо присоединять отборное заявление на ваш SQL, или добавить опцию в Page_Load используя

if(!Page.IsPostBack) 
{ 
    DropDown1.Items.Insert(0, new ListItem("Select All", 0)); 

} 
+0

Пока опция должна быть добавлена ​​в раскрывающееся меню, не знаете, как это решает проблему SQL. Он просто ищет WHERE District = '0', не так ли? – TheDPQ

+0

Мне очень жаль, что я возвращаюсь к вам так поздно, но я просматриваю SO на работе, и поскольку они реализовали OpenID, я не смог его использовать (возможно, прокси-сервер). В этой ситуации вы бы жестко закодировали свой оператор SQL, чтобы принять 0 как «все», используя что-то по линиям WHERE (@ District = 0 OR @ District = District) –

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