, которое было определено ранее, поэтому мы анализируем их просто как типы перечислений (у нас здесь то же пространство имен, поэтому нам не нужно переопределять тип) и используем их как значения свойства
Suit
элемента управления пользователя. Мы преобразуем возвращаемый тип
object
в
suit
с помощью простого синтаксиса преобразования типов, и это невозможно сделать неявно.
Не нужно это усложнять, просто определим одно значение с помощью атрибута
Теперь мы имеем четыре новые кнопки, которые можно использовать для изменения масти:
Отметим, что эти кнопки не изменяют выбранный переключатель, хотя сделать это было бы достаточно просто.
Теперь, создав элемент управления пользователя, можно использовать его на любой другой странице Web с помощью директивы
<%@ Register %>
и двух файлов исходного кода (
PCSUserC1.ascx
и
PCSUserC1.ascx.cs
), созданных для элемента управления.
Преобразование приложения предварительного заказа мероприятия в элемент управления пользователя
В большинстве случаев преобразование страницы ASP.NET в элемент управления пользователя выполнить легко, так как можно просто скопировать требуемый код в пустые файлы
.ascx
и
ascx.cs
. Можно даже выйти из положения в некоторых случаях, просто изменяя имя файла на
.ascx
, если поместить весь код C# в этот файл, а не использовать режим "code behind".
Однако в некоторых случаях это невозможно, так как существуют препятствия, которые необходимо рассмотреть, чтобы преобразовать приложение Web из предыдущей главы в элемент управления пользователя.
Это приложение использует переменную уровня приложения для множества данных, которая содержит таблицы данных мероприятий, участников и названий помещений. Если желательно использовать эту переменную таким же образом, нам понадобиться в этом проекте поместить код для извлечения множества данных в файле global.asax. То есть нам еще нужно добавить в проект ссылку Web на требуемую службу Web.
Существуют другие изменения, которые необходимо сделать, чтобы учесть факт, что элемент управления имеет базовый класс
UserControl
, а не
Form
. Например,
UserControl
не имеет коллекции
Validators
, поэтому невозможно просмотреть объекты
Validator
в этой коллекции с помощью кода, который использовался ранее: