Мы поместили все в единую таблицу LookUp в базе данных, столбец, сопоставленный с перечислением, в котором описывался, для какого поиска он был (название, страна и т. Д.).
Это позволило нам добавить гибкость опции «Другой, пожалуйста, укажите» в раскрывающихся списках поиска. Мы внесли контроль, который инкапсулировал это, с свойством включать или отключать это поведение в каждом конкретном случае.
Если конечный пользователь выбрал «Другое, пожалуйста, укажите», появится текстовое поле для ввода их собственного значения. Это будет добавлено в таблицу поиска, но будет помечено как специальный элемент.
В таблице содержится флаг, обозначающий статус каждого значения поиска: активный, неактивный, AdHoc. В раскрывающемся списке появятся только активные. AdHoc - это те, которые были созданы с помощью опции «Другой, пожалуйста, укажите».
Страница администратора показывала частоту использования значений AdHoc, позволяя администраторам сайта распространять распространенные популярные значения в общем использовании (т. Е. Заменяя флаг состояния на активный).
Это может быть излишним для вашего приложения, но оно отлично подойдет для нас: приложение было практически полностью обработано CRUD-операциями по очень специфичным для бизнеса данным. У нас было множество поисковых запросов по всему сайту, которые клиент хотел сохранить. Это дало им полную гибкость без вмешательства со стороны нас.
Мне очень нравится эта идея. Не уверен, что я пойду с чем-то довольно сложным, но, безусловно, хорошей пищей для размышлений. –
Как вы убедились, что ваши различные выпадающие списки были указаны в правой группе? Вы скопировали групповой ключ в свой код? –
Мы устанавливали свойство каждый раз, когда мы помещаем экземпляр элемента управления поиском на странице. Это невозможно сделать декларативно в asp.net; Я не работал в Ruby. Контроль будет умереть ужасно, если мы забыли его установить, поэтому мы сразу увидим это при отладке. – teedyay