Книга: ASP.NET MVC Framework
Использование серверных элементов управления WebForms
Использование серверных элементов управления WebForms
В главе 2, в разд. "Использование элементов управления WebForms в MVC-приложениях” уже была продемонстрирована возможность применения серверных элементов управления в представлениях MVC. Как уже было сказано ранее, использование серверных элементов управления может быть оправдано, если не требуется интерактивное взаимодействие с соответствующим элементом, и он используется только для генерации разметки.
Несколько большую интерактивность взаимодействия с элементом управления можно реализовать за счет создания специального вспомогательного метода, взаимодействующего с этим элементом управления.
Сделать это можно просто, учитывая, что класс Webcontrol
, которому наследуют классы конкретных элементов управления, содержит метод Render(),
генерирующий разметку. Как раз метод Render()
применяет инфраструктура WebForms для всех элементов управления на страницах. Пример использования элемента управления WebForms приведен в листинге 5.14.
Листинг 5.14. Пример использования класса Button во вспомогательном методе
public static class WebFormsHelper {
public static string WebFormsButton(this HtmlHelper html)
{
Button control = new Button { Text = "Web Forms Button" };
StringBuilder sb = new StringBuilder();
HtmlTextWriter htmlWriter = new HtmlTextWriter(
new StringWriter(sb));
control.RenderControl(htmlWriter);
return sb.ToString();
}
}
Листинг 5.14 демонстрирует концепцию использования серверных элементов управления: создать экземпляр класса элемента управления, задать его свойства, вызвать при необходимости методы, а затем сгенерировать разметку, которая будет возвращена вспомогательным методом.
В каких случаях подобный подход к использованию серверных элементов управления может быть оправдан? В случаях, когда у вас есть существующий элемент управления, отвечающий вашим требованиям, и для которого подобная обертка может быть удобной в использовании. Универсального рецепта для принятия решения, стоит ли использовать элемент управления подобным образом, — нет, однако имеет смысл задуматься в случае, когда для элемента управления приходится эмулировать серверные события. Зачастую в подобных ситуациях проще реализовать поддержку необходимой функциональности в самих вспомогательных методах.
- Восстановление с использованием инструмента gbak
- Основные "рычаги" управления производительностью
- Типы страниц и их использование
- Использование констант
- Категорийный менеджмент. Курс управления ассортиментом в рознице
- Создание свободно позиционируемых элементов
- Использование переменной окружения ISC_PATH
- Использование сервера Yaffil внутри процесса
- Использование CAST() с типами дата
- Использование типов содержимого и столбцов
- Вызов хранимых процедур InterBase с использованием стандартного синтаксиса ODBC
- Использование кнопки Автосумма