Как отфильтровать следующие списки в asp.net? - PullRequest
0 голосов
/ 06 января 2009

У меня есть 4 списка (lstStates, lstCounties, lstCities и lstZipcodes). Вот несколько ограничений:

  • Ни один из списков не отключен.

  • Любое окно списка может быть выбрано в любое время, то есть нет конкретного порядка, который пользователь должен выбрать.

  • Фильтрация вперед и назад. Под этим я подразумеваю, что если пользователь выбирает состояние из lstStates, он будет фильтровать lstCounties, lstCities и lstZipcodes. Если пользователь выбирает почтовый индекс из lstZipcodes, он будет фильтровать lstCities, lstCounties и lstStates.

  • В списках допускается несколько вариантов выбора.

Каждый список связывается с датой, чтобы получить свои начальные данные. Объект данных извлекается из хранимой процедуры sqlserver. Каждый список имеет свою собственную хранимую процедуру, например, lstStates имеет процедуру с именем GetStates, которая возвращает один столбец (State), а ListBoxes DataValueField и DataTextField оба установлены в State. Подобно lstStates, lstCities связан с таблицей данных, которая получает один столбец из хранимого процесса GetCities, который является city.

Еще одна вещь, на которую я хочу обратить внимание, это то, что я подключаю ObjectDataSource для получения данных.

Ответы [ 3 ]

2 голосов
/ 06 января 2009

Уже спрашивали: Какой самый эффективный способ фильтрации списков на основе выбора другого в c #?

[править] Хорошо, вам нужно добавить событие к каждому событию [myListbox] _SelectedIndexChanged. Когда выбор будет изменен, вам нужно будет обновить все остальные списки на основе этих выборов. Я предполагаю, что это должно быть обработано базой данных, поскольку связывание состояний с ZipCodes любым другим способом было бы уродливым. Так что, предположительно, ваши данные по отношениям States <-> Zips <-> Counties находятся где-то в вашей базе данных.

Таким образом, в вашей базе данных должны быть процы (или средний уровень LINQ), которые получают State по Zips и так далее. При каждом событии, измененном выбором, отправляйте новый выбор обратно в базу данных sproc, а затем перепривязывайте список на основе возвращаемых данных. Вы должны быть в состоянии сделать один sproc для каждого, который возвращает все состояния, если не передан zip и так далее. [/ Править]

0 голосов
/ 08 октября 2013

ScriptManager.RegisterStartupScript (Page, Page.GetType (), "bab", "CacheItems ();", true);

var ddlText, ddlValue, ddl, lblMesg; function CacheItems () { ddlText = new Array (); ddlValue = новый массив (); ddl = document.getElementById (""); для (var i = 0; i
0 голосов
/ 06 января 2009

Чтобы уточнить, при начальной загрузке страницы вы загружаете ВСЕ почтовые индексы, ВСЕ города, ВСЕ штаты и ВСЕ страны?

Мне это кажется немного громоздким. Это тип требования, которое я бы поставил под сомнение. (Конечно, я не знаю, что вы уже не задавали вопросов или что из этого получился какой-то хороший ответ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...