C# для профессионалов. Том II
Шрифт:
Вместо этого необходимо использовать следующий подход:
Существует также проблема с тем. что элемент управления использует итоговую проверку. Значит, другие области на странице, использующей этот элемент управления, будут требовать дополнительной работы для проверки. Это связано с тем, что итоговая проверка работает для всей страницы, включая все элементы управления проверкой, несмотря на то, где они находятся, поэтому может возникнуть путаница. Возможно, простейшим решением здесь является создание собственного обработчика проверки, который использует элементы управления проверкой только в элементе управления пользователя, один из них — элемент управления меткой, с помощью которого выводится требуемый текст вручную. Но здесь этот подход рассматриваться не будет.
В целом необходимо сделать все элементы управления пользователя полностью независимыми, что по сути означает, что данное приложение не является идеальным. Однако оно высветило некоторые ограничения элементов управления пользователя.
В следующем разделе мы увидим, как можно изменять элементы управления в значительно большей степени с помощью синтаксиса специальных элементов управления.
Специальные элементы управления
Специальные элементы управления — следующий шаг по сравнению с элементами управления пользователя в том смысле, что они являются полностью самодостаточными в сборках C#, не требуя отдельного кода ASP.NET. Это означает, что нам не нужно проходить через процесс сборки UI в файле
Обычно для разработки специального элемента управления требуется больше времени, чем для элемента управления пользователя, так как синтаксис является более сложным и часто требуется написать значительно больший код, чтобы получить результат. Элемент управления пользователя, как мы видели, может просто объединять несколько других элементов управления, в то время как специальный элемент управления может делать практически что угодно.
Чтобы получить наиболее гибкое поведение специальных элементов управления, можно выводить класс из
Любой из этих элементов может использоваться на страницах ASP.NET одинаково. Необходимо только поместить созданную сборку в каталог
Мы используем параметр
Выше, в примере строки кода, мы говорим, что хотим использовать сборку с именем
С помощью специальных элементов управления можно также воспроизвести некоторое вложенное поведение элементов управления, такое, как мы видим в списке элементов управления:
Можно создать очень похожим образом элементы управления, которые интерпретируются как потомки других элементов управления. Позже в этой главе мы увидим, как это делается.
Конфигурация проекта специального элемента управления
Применим часть этой теории на практике. Мы будем использовать для простоты единственную сборку для хранения всех специальных элементов управления примера этой главы, которую можно создать в Visual Studio.NET, выбирая новый проект типа Web Control Library. Назовем нашу библиотеку
Здесь проект создан в каталоге
Один из технических приемов, применяемых для упрощения тестирования одиночного решения, состоит в добавлении проекта приложения Web к тому же решению:
В данный момент это единственное приложение, которое будет использовать нашу библиотеку специального элемента управления, поэтому для ускорения работы определим, что выводимая сборка библиотеки создается в правильном каталоге