(Динамические данные, ASP.Net, C #, выпадающие списки пользовательских элементов управления .ascx). КАК ПРОЙТИ ЗНАЧЕНИЯ СРЕДИ УДАЛЕНИЯ? - PullRequest
0 голосов
/ 29 января 2011

Я работаю с использованием ASP.Net Dynamic Data, Visual Studio 2010 и C #.

У меня есть три пользовательских элемента управления (FieldTemplates) с расширением .ascx: business_type.ascx, department.ascx, section.ascx

Если бы я выбрал в первом поле со списком тип cod_business, где = 6, я хотел бы показать только те отделы, чей cod_business = 6

Допустим, у меня 500 отделов, но только 5, 128 и 446 выполняют это правило.

Скажем также, что у меня 2500 секций, из которых:

  1. 40, 66 и 222 имеют cod_dept = 5 и cod_business = 6
  2. 346, 399, 400, 403 и 458 имеют cod_dept = 128 и cod_business = 6
  3. 14, 45, 333 a, d 335 имеют cod_dept = 446 и cod_business = 6

Мне бы также хотелось, чтобы в третьем поле со списком отображались только те разделы, у которых cod_business = 6 и чьи cod_dept = 5, 128 или 446, в зависимости от того, какой из них я выбрал в поле со списком отдела

Помните: это должно работать на динамических данных ASP.Net 4.0

Это достижимо?

Я видел каскадные решения от Стива Нотона, но они ориентированы на базу данных.

Мне нужно «соединить в более внутренней форме» выпадающие списки, что означает, что у меня нет сущности для заполнения каждого выпадающего списка, но сам список значений содержится внутри каждого выпадающего списка. Обычно я передаю эти значения из небольших таблиц Excel или небольших текстовых файлов.

С уважением.

1 Ответ

0 голосов
/ 29 января 2011

Как вы изначально заполняете значения выпадающих меню?Являются ли они элементами управления с привязкой к данным?

В любом случае вам понадобится способ взаимодействия с этими 3 элементами управления при обратной передаче для достижения вашей фильтрации.Один из способов сделать это - представить DropDownList как свойство в вашем пользовательском элементе управления.В своем коде вы добавили бы свойство, подобное этому:

public DrowDownList List {
get { return this.DropDownInsideTheControl; }
set { this.DropDownInsideTheControl = value; } }

Добавьте соответствующий обработчик события к событию OnSelectedIndexChanged и установите для AutoPostBack значение true, и все будет хорошо.Затем на странице со всеми элементами управления, которыми вы могли бы управлять желаемой фильтрацией.

Этот подход сработает, но я думаю, что разделение 3 выпадающих меню на отдельные элементы управления делает вашу жизнь более сложной.Эти 3 элемента управления тесно связаны между собой, поэтому может иметь смысл включить их все в один пользовательский элемент управления.Таким образом, вы можете взаимодействовать с ними более напрямую и легче управлять связанными с ними отношениями.Вы по-прежнему можете открывать списки для Page, в котором работает элемент управления, как я описал выше.

...