Получить значение элемента управления из пользовательского веб-элемента управления - PullRequest
0 голосов
/ 12 октября 2010

Допустим, у меня есть три DropDownList элемента управления в пользовательском веб-элементе управления, и они зависят друг от друга.

  • Категория
  • Марка
  • Продукты

Пояснение: После того, как я выбрал категорию в раскрывающемся списке «Категории», связанные бренды загружаются в бренды DropDownList, и то же самое происходит, когда я выбираю конкретный бренд, и все они находятся в пользовательском веб-элементе управления, так как я слишком часто использую его на разных страницах. не хотите копировать и вставлять один и тот же код на всех страницах.

Проблема: Страницы могут содержать элементы управления GridView и DataSource, которым требуется дополнительный параметр Where для получения всех необходимых данных, и этот параметр может зависеть от выбранного продукта в Продуктах. DropDownList контроль.

Вопрос: Итак, как мне получить Выбранное значение продукта из продуктов DropDownList , чтобы связать его с SQLDataSource или любым другим DataSource элементом управления.

Мои мысли: Я верю, что могу решить эту проблему следующими способами.

  • Я могу использовать статическую переменную, которая обновляется после выбора продуктов. Эта переменная поля может быть общедоступной, чтобы каждый мог ее получить
  • Выбранные продукты DropDownList может создать поле QueryString для меня, чтобы захватить выбранное значение.
  • Таким же образом, выпадающий список может создать переменную Session на лету, и я могу получить значение
  • Может создать скрытое поле, может быть.

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

Возможно, отдельный класс или свойство может помочь мне в решении шлюза.

В любом случае, я жду ваших ответов.

Ответы [ 2 ]

2 голосов
/ 12 октября 2010

Если я правильно понимаю вопрос:

Вы можете добавить свойство в пользовательский элемент управления, который отображает выбранное значение DDL для продуктов.

Вы также можете добавить и вызвать событие изпользовательский элемент управления, который срабатывает при изменении значения DDL продуктов.Создание пользовательского аргумента события, который содержит значение продукта, позволяет передавать его непосредственно обработчику событий.

Затем ваши страницы могут обрабатывать событие, вызванное пользовательским элементом управления, иметь значение продукта и связывать сетку..

0 голосов
/ 12 октября 2010

Вы можете привязать события DropDownList.SelectedIndexChanged к одной и той же функции и проверить свойства SelectedValue каждого DropDownList. Если их SelectedValues ​​действительны, свяжите сетку с вашим источником данных.

Я делал это в прошлом, когда мне требовалось, чтобы пользователи вводили определенный объем данных, прежде чем я смогу выполнить запрос к базе данных. Я устанавливаю свойство Hidden в своем GridView, если DropDownLists не действительны, и сбрасываю его, когда они правильно связаны.

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