Наследование от Control против Web Control - PullRequest
5 голосов
/ 13 июля 2009

Я прочитал об этом, который дает объяснение, когда вы выбираете Веб-контроль вместо Контроля при создании пользовательских элементов управления, но этого недостаточно. Я видел пользовательские элементы управления, наследуемые от обоих, когда они оба передают материал в пользовательский интерфейс.

http://msdn.microsoft.com/en-us/library/yhzc935f.aspx

"Если ваш элемент управления отображает элемент пользовательского интерфейса (UI) или любой другой видимый элемент на клиенте, вы должны получить свой элемент управления из System.Web.UI.WebControls .. ::. WebControl (или производного класса). Если ваш элемент управления отображает элемент, который не виден в браузере, например скрытый элемент или метаэлемент, он получает ваш элемент управления из System.Web.UI .. ::. Control. Класс WebControl наследуется от Control и добавляет style- связанные свойства, такие как Font, ForeColor и BackColor. Кроме того, элемент управления, производный от WebControl, участвует в функциях тем ASP.NET без дополнительной работы с вашей стороны. "

так что единственная причина использовать WebControl, если вы хотите использовать их функции стилей? Я просто собираюсь выводить строки с помощью строителя строк, поэтому мне все равно. Я бы предпочел использовать прямолинейный дизайн без таблиц и строки для формирования моего HTML, который мой элемент управления отображает в любом случае.

Ответы [ 3 ]

10 голосов
/ 13 июля 2009

Контроль

Извлечение из класса Control позволяет нашему элементу управления использовать методы рендеринга, предоставляемые классом Control, а также использование ViewState.

WebControl

Класс WebControl является производным от класса Control. Однако, если мы получим наш пользовательский элемент управления из WebControl, мы получим бесплатную поддержку многих визуальных аспектов нашего элемента управления, таких как размер шрифта, классы CSS, цвет фона и т. Д.

К какому классу я должен относиться?

Когда вы создаете пользовательский элемент управления, для которого пользовательский интерфейс практически не требуется, вы должны наследовать его от класса Control. Если для вашего элемента управления требуется расширенная поддержка пользовательского интерфейса, вам следует использовать WebControl.

От: http://dotnetslackers.com/articles/aspnet/ASPNETCustomControlsPart1.aspx

2 голосов
/ 13 июля 2009

WebControl не отображает таблицы или что-то в этом роде, если вы не скажете это. То, что у него есть, это функции стилей, которые большинство пользователей ожидают от элемента управления, который отображается с пользовательским интерфейсом.

Это не стоит много, чтобы использовать его. Попробуйте и посмотрите, не вызывает ли это каких-либо проблем.

0 голосов
/ 13 июля 2009

Итак, у вас есть вопрос? Я думаю, что различия между ними были хорошо рассмотрены в статье MSDN.

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