Знакомство с ASP.NET 2.0 - Использование новых объектов страницы ASP.NET 2.0

ОГЛАВЛЕНИЕ

Использование новых объектов страницы ASP.NET 2.0

Объект ClientScriptManager

ClientScriptManager предоставляющий методы для работы скодом сценариев, которые будут использоваться в клиентской части Web-приложения. Теперь все методы, которые в ASP.NET 1.x использовались для регистрации клиентских скриптов или скрытых полей принадлежат классу ClientScriptManager. Например, иногда бывает необходимо регистрировать клиентский сценарий динамически, в зависимости от каких-либо параметров. Например, при перезагрузке страницы форума нужно указать пользователю, что ему пришло новое личное сообщение. Это можно сделать как показано в нижеследующем примере.

protected void Page_Load(object sender, EventArgs e){  if (CheckMail())  {
string startupScript = "<script>" +

"if(confirm('Вам пришло новое сообщение. Прочесть?'))" +
"window.navigate('/ReadMail.aspx');" +

"</script>";
ClientScript.RegisterStartupScript(this.GetType(), "MailAlertScript", startupScript); }}

Объект HtmlHead

Для каждой страницы ASP.NET, в HTML коде которой присутствует тег <head runat="server"></head> автоматически создается экземпляр объекта HtmlHead, позволяющий управлять заголовком страницы, добавлять теги META и ссылки на каскадные таблицы стилей.

Раньше разработчику страницы ASP.NET 1.0 приходилось добавлять специальное свойство или переменную в класс страницы или придумывать какой-либо обходной путь для того, чтобы получить возможность управлять заголовком и метаданными страницы. Например, так как это показано в следующем примере.

<head><title><%=Page.Title%></title><%=Page.MetaData%><%=Page.Css%></head>

С появлением объекта HtmlHead подобные ухищрения уходят в прошлое.

Page.Header.Title = "HtmlHead Test Page";Page.Header.Metadata.Add("Author", "Gaidar Magdanurov");

Page.Header.Metadata.Add("E-Mail", "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.");

Помимо этого, как и любой элемент, способный содержать вложенные элементы, HtmlHead позволяет добавлять произвольные элементы.

((Control)Page.Header).Controls.Add(new LiteralControl
("<meta http-equiv=\"Content-Type\" content=\"text/html;

charset=windows-1251\">"));