WebControl против HtmlControl. Cos и профи, использующие их в приложении веб-форм - PullRequest
5 голосов
/ 23 августа 2009

В приложении веб-форм, для серверного кода, когда используете WebControls и когда используете HtmlControls? Например, если я хочу написать текст внутри тега span, я должен использовать:

<span id="someid" runat="server"></span>

или

<asp:Label id="someid" runat="server"></asp:Label>

Ответы [ 3 ]

7 голосов
/ 23 августа 2009

Основным отличием является то, что HtmlControls обеспечивает способ адресации только части страницы в течение цикла страницы, тогда как WebControls имеют состояние.

В вашем примере, если вы назначите какое-то значение тексту метки, оно сохранится в PostBacks.

По моему опыту, гораздо лучше использовать HtmlControls, если вы можете, они намного легче и не заполняют ваш ViewState. Используйте WebControls, когда вам нужно, чтобы они были с состоянием.

Например, вы можете использовать метку для заголовка страницы, поскольку вы можете назначить значение только один раз (обычно в Page_OnLoad внутри блока if (!IsPostBack)). Возможно, вы захотите использовать HTML-диапазон для предоставления обратной связи о состоянии (например, когда состояние обновляется при каждой обратной передаче).

1 голос
/ 23 августа 2009

Я бы использовал подход span. Какой бы серверный элемент управления вы ни использовали, он, наконец, будет отображаться как элемент управления html. Если ваша функциональность может быть реализована с помощью элемента управления html, лучше используйте это .. Для серверного элемента управления, такого как сетка данных, вам может потребоваться больше кода для достижения этих функций с помощью таблицы HTML. В этом случае вы можете использовать серверный элемент управления.

0 голосов
/ 23 августа 2009

одно поведение кнопки asp: всегда отображается как тип ввода = submit и asp: кнопка image всегда отображается как тип ввода = image

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