Резюме
Привет всем,
ОК, далее в мои приключения с настраиваемыми элементами управления...
Вкратце, вот что я узнал о трех основных "классах" пользовательских элементов управления. Пожалуйста, не стесняйтесь исправить меня, если это не так!
- UserControls - которые наследуются от UserControl и содержатся в файле ASCX. Они довольно ограничены в том, что они могут сделать, но являются быстрым и легким способом получить некоторую унификацию пользовательского интерфейса с поддержкой дизайнеров.
- Пользовательские составные элементы управления. Это элементы управления, которые наследуют от WebControl, где вы добавляете ранее существующие элементы управления в элемент управления в методе CreateChildControls. Это обеспечивает большую гибкость, но отсутствие поддержки дизайнера без дополнительного кодирования. Они очень портативны, поскольку они могут быть скомпилированы в DLL.
- Пользовательские визуализированные элементы управления. Подобно настраиваемым композитным элементам управления, они добавляются в проект веб-библиотеки управления. Передача элемента управления полностью контролируется программистом путем переопределения метода Render.
Мои мысли..
ОК, поэтому, играя с пользовательскими композитами, я нашел следующее:
- У вас мало/нет контроля над выходом HTML, что затрудняет "отладку".
- CreateChildControls (и последующие методы) могут повсеместно работать с Controls.Add(myControl).
- Я нашел таблицы рендеринга (будь то макет или контент), чтобы быть значительно неудобным.
Вопрос (ы)..
Итак, я признаю, что я новичок в этом, поэтому я мог быть вне базы с некоторыми из моих отмеченных выше замечаний.
- Вы используете Composites?
- Есть ли у вас какие-нибудь опрятные трюки для управления выходом HTML?
- Вы просто говорите "черт с ним" и продолжайте и создаете настраиваемый визуализированный элемент управления?
Своего-то я очень хочу, чтобы стать действительно твердым в моем сознании, так как я знаю, насколько хорошая управляющая разработка может сократить общее время разработки.
Я с нетерпением жду ваших ответов ^ _ ^