Знакомство с 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\">"));