Пятница, 26.04.2024, 02:07
Приветствую Вас Гость | RSS

Лекции

Меню сайта
Форма входа
Категории раздела
ТАУ (Теория автоматического управления) [31]
лекции по ТАУ
Экология [151]
учебник
Бухгалтерский учет и налогообложение в строительстве [56]
Дементьев А.Ю. - Практическое пособие
Психология [104]
Пип
информатика [80]
с# Карли Ватсон
современные стулья [0]
новинки
Поиск

Главная » 2010 » Февраль » 11 » Приложения ASP.NET
00:50
Приложения ASP.NET
Приложения ASP.NET
ASP.NET — это способ, предусмотренный в .NET для создания динамических
web-сайтов. Как и ADO.NET, ASP.NET заимствует свое название от предшеству-
ющей технологии Active Server Pages (ASP — активные серверные страницы), но
в данном случае сходство этим практически и ограничивается. В то время как
ASP-страницы интерпретировались и создавались на функционально ограниченных
языках описания сценариев VBScript и JScript, приложения ASP.NET компилиру-
ются на язык MSIL точно также, как и другие приложения .NET. Это означает,
что у нас появляется возможность описывать их на тех же языках программирова-
ния, что и остальные приложения .NET. В данном случае особенно важно (посколь-
ку книга посвящена языку.программирования С#), что можно писать приложения
ASP.NET на С#.
Другим огромным преимуществом ASP.NET является использование управляю-
щих элементов на стороне сервера. В ASP также имелась возможность включать
управляющие элементы HTML (такие, как кнопки и другие элементы форм) в со-
здаваемые страницы, однако делать это приходилось вручную, а реагировать на лю-
бой ввод пользователя в такие элементы (например, пользователь щелкнул мышью
на кнопке) можно было либо с помощью выполнения сценария JavaScript на кли-
ентской стороне, либо повторно отправляя страницу серверу. В первом случае
проблема заключается в том, что в различных браузерах используются разные реа-
лизации JavaScript, поэтому практически не представляется возможным создавать
такие изощренные программы, которые могли бы работать как на Netscape, так
и IE. Кроме того, существуют пока такие допотопные браузеры, которые вообще
не поддерживают JavaScript. Интернет не сохраняет свое состояние, поэтому при
повторной отправке страницы на сервер теряется вся информация, хранящаяся
в переменных страницы. Чтобы этого не произошло, следует создать довольно
сложный код, который позволит сохранять эти переменные в HTML-элементах
или в строке запроса URL.
ASP.NET позволяет разрешить эти проблемы за счет использования управляю-
щих элементов на стороне сервера. Такие элементы генерируют HTML-код, ко-
торый передается браузеру для вывода управляющего элемента, но они, кроме
того, генерируют еще и функции на JavaScript и скрытые управляющие элементы,
в которых сохраняется их текущее состояние. Если страница передается серверу,
то вместе с ней серверу передается и вся соответствующая информация; управля-
ющий элемент автоматически обрабатывает эту информацию и изменяет HTML
таким образом, чтобы вывести управляющий элемент на экран. В простейшем ва-
рианте это означает, что мы получаем возможность использовать такие текстовые
окна, которые "запоминают" значения, введенные пользователем, но если посмот-
реть немного дальше, то они позволяют ASP.NET использовать более сложные
управляющие элементы (например, управляющий элемент календарь), чем те,
с которыми мог справиться ASP.
680 Глава 24
Последнее, и, возможно, наиболее важное преимущество заключается в том,
что ASP.NET предоставляет простой способ создания web-служб. На текущий мо-
мент можно представить себе web-службы просто как составные части Паутины,
однако они являются гораздо более сложной темой, и им будет посвящена следую-
щая глава целиком.
Для того чтобы увидеть какой-либо код, работающий на стороне сервера,
в действии, зайдите на сайт Amazon.com и выберите свой любимый роман. Стра-
ницы с подробной информацией о романе, которую вы видите перед собой, не су-
ществует на сервере. На самом деле на сервере имеется некоторый шаблон,
в котором описывается общий вид страницы, и, когда вы запрашиваете какую-
нибудь страницу, этот код выполняется на сервере, извлекает информацию о за-
требованной книге из базы данных и вставляет эту информацию в шаблон. То, что
возвращается в ответ на ваш запрос,— это HTML; мы поговорим об этом несколь-
ко позже.
На протяжении всей главы мы будем заниматься кодом, который выполняется
на стороне сервера. Вашему браузеру придется выполнять относительно неболь-
шой объем работы при выводе страницы.
Начиная с этого момента, под "активными страницами" будут иметься в виду
страницы, которые могут быть созданы посредством как классического ASP,
так и ASP.NET. Обе технологии используют один и тот же основной подход
к созданию страниц — просто ASP.NET является намного более мощным средством,
и вы сами поймете, насколько существенно упрощается создание web-сайтов
при использовании ASP.NET.
; //focaihost/Weblog/Delfsuit, aspx
D i s r a e l i ' s W e b l o g
Copyright © Wrox Press 2001
Рассмотрим пример. Он выглядит как
обыкновенная web-страница (см. рис. слева).
Обратите внимание на строку с инфор-
мацией об авторских правах в нижней части
страницы. Представим себе, что эта строка
появляется на каждой странице нашего web-
сайта. Сейчас она относится к 2001 году,
и это означает, что при наступлении нового,
2002 года нам придется пройти по всему
сайту и для каждой страницы изменить зна-
чение 2001 на 2001-2002.
При использовании "активных страниц"
можно сконфигурировать страницу таким
образом, что она будет самостоятельно определять год и вносить изменения авто-
матически. Отсюда следует, что мы освобождаемся от решения этой простой, но
очень нудной административной задачи на все последующие годы.
Это очень банальный пример. Технология создания активных страниц вступает
в свои права, когда вы привязываете свой сайт к какой-нибудь базе данных или
к каким-либо другим функциональным возможностям, подобным тележке покупа-
теля в электронной коммерции. В этой главе мы планируем рассмотреть, каким
образом можно создать "web-регистратор". Он является web-аналогом обычного
дневника, который мы, вместо того, чтобы записывать его на бумагу и запирать
в ящик стола, сделаем общедоступным с. помощью Паутины. Принцип при этом
остается тем же самым — у вас есть некая дата, а под этой датой располагается
список идей и событий, относящихся к этому дню. Один из популярных таких спи-
сков вы можете найти по адресу www.bloghop.com.
Приложения ASP.NET 681
Создание web-регистратора
Для того чтобы продемонстрировать мощь и функциональные возможности
ASP.NET, разработаем приложение web-регистратора с нуля — начиная с един-
ственной чистой web-страницы и последовательно добавляя все новые и новые
возможности и давая необходимые пояснения по мере продвижения к цели. Снача-
ла мы продемонстрируем, каким образом можно выводить на экран записи в web-
регистратор — по одной или сразу несколько. Затем перейдем к рассмотрению
возможностей сортировки записей, их добавления и редактирования, после чего
коротко остановимся на вопросах, касающихся безопасности, например, на огра-
ничении доступа к сайту и аутентификации пользователей, зашедших на страницу
регистрации. По мере этого продвижения вы познакомитесь со следующими темами:
• Добавление динамического (активного) содержимого (контента)
в web-страницы с помощью управляющих элементов web-форм
• Реализация обработчиков событий для каждого управляющего элемента,
используя код на С#
Q Создание внешне привлекательного пользовательского интерфейса
• Расширение пользовательского интерфейса для поддержки
дополнительных функциональных возможностей
Основы создания приложения
Можно разрабатывать приложения в Visual Studio.NET, используя шаблон
ASP.NET Web Application, который создает новый проект и автоматически конфигу-
рирует IIS так, чтобы можно было отлаживать проект по мере его создания.
Первое, что мы собираемся сделать,— это создать на web-сайте простую неиз-
меняемую страницу (другими словами, страницу, в которой нет никаких динамиче-
ских элементов), с тем чтобы убедиться, что все работает так, как и задумывалось.
Эта страница будет создаваться как страница ASP.NET (с расширением .aspx),
поскольку, несмотря на то, что изначально у этой страницы нет динамических эле-
ментов, со временем они появятся.
Для ASP-страниц обычно используется расширение .asp,
обозначающее, естественно, Active Server Pages. Для ASP.NET
страницы используют расширение .aspx, что является
разновидностью ASP-i первоначального названия ASP.NET.
Практикум:
создание страницы
web-регистратора
1. Откройте Visual Studio.NET
и выберите пункт меню
File | New | Project.
Из списка Project Types
зыберите Visual C# Projects,
а из списка Templates —
ASP.NET Web Application.
В окно Name введите
название — Weblog
(см. рис. справа).
Pro&cfc types;
.•#€$5
'" T j Vi-AieS О? F r o n t s
• CU Visual C++- Projects
• i I S e t u p ami I ep --. tmt-k f ? n&tU
+ Z.1 Other Projects
J j vtiud LttJ. S Jut JO*1»
;Л project for crcu?ing on application i*tb .5 Web o
Арр1с&Й0Г1 <
ASP.NETWeb ASP.NET Web WebCcnUd
;;n Service library zl
' •
682 Глава 24
2. Прежде чем нажать ОК, обратите внимание на то, что
в окне Location находится следующий URL: http://localhost.
Это подсказывает, в каком именно месте будет создаваться новый сайт,
и, когда мы говорим об Интернете, localhost всегда обозначает
ваш собственный компьютер.
3. Для создания нового проекта нажмите ОК.
4. Воспользовавшись Solution Explorer, щелкните правой кнопкой мыши
на проекте Weblog и выберите пункт меню Add | Add Web Form.
Введите имя Default.aspx и щелкните мышью на Open.
5. Это должно привести к открытию новой страницы в режиме Design
(разработка), однако может и не привести, если вы перед этим
экспериментировали с ASP. Если страница находится в режиме Design,
то на экране вы должны увидеть следующие два сообщения:
"The page you are working on is in grid layout mode, and objects
will be arranged using absolute (x and y) coordinates."
(Страница, с которой вы работаете, находится в режиме вывода
с сеткой, и объекты будут размещаться на ней с использованием
абсолютных координат (х и у).) и "То use flow layout (top to bottom,
as in a word processing document), change the pageLayout property
of the DOCUMENT to FlowLayout." (Для использования потокового
вывода (сверху вниз, как при
обработке документов в текстовых
llhe page you are working on is in grid layout mode, and
; ; ; objects^1 be arranged using absolute (x and y); ; ;
- coordinates.*
To u s e flow layout ( t o p t o bottom, a s m a word > - - • " • > • - н а F l o w L a y o u t . ) , к а к п о к а з а н о
processing document), change the pageLayout property^
of the DOCUMENT to FtowUyout.
Для того чтобы получить
редакторах) измените значение
свойства DOCUMENT pageLayout
на рисунке слева.
вывод с сеткой, представленный
на рисунке, следует выбрать
пункт меню View | Design.
6. С помощью программы разработки Designer можно создавать страницы
Двумя СПОСОбаМИ — В режиме GridLayout ИЛИ В режиме FlowLayout.
С точки зрения автора более предпочтительным является режим
FlowLayout. В окне Properties измените значение свойства pageLayout
на FlowLayout. Точки, которые выводились на странице, исчезнут.
Программа Designer предлагает набор инструментов, которые позволяют об-
легчить процедуру создания web-сайта. На практике это означает, что создавать
web-страницы так же просто, как писать письма с помощью Microsoft Word. Однако
предлагаемые в программе Designer инструменты налагают весьма существенные
ограничения, поскольку они предназначаются для людей, которые интересуются
только разработкой web-интерфейсов, а не программированием. Автор уверен
в том, что раз уж вы дочитали книгу до этой главы, то вам нравится создавать про-
граммное обеспечение для компьютеров, поэтому будем придерживаться "старой
школы" и создавать страницы с помощью HTML. Если вы чувствуете себя неуве-
ренно при программировании на HTML, то, перед тем как двигаться дальше, вы
можете просмотреть предыдущую главу и освежить в памяти основы программиро-
вания на HTML.
Приложения ASP.NET 683
7. Выберите пункт меню View | HTML Source. Появится редактор HTML.
(В качестве альтернативного варианта в нижней части редактора кода
вы сможете обнаружить две маленькие кнопки, помеченные
как Design и HTML. При желании можно пользоваться ими
для переключения из одного режима представления в другой.)
8. К скелету HTML-кода добавьте строки, выделенные серым цветом:
<%@ Page 1апдиаде=ис#и Codebehind="Default.aspx.cs" AutoEventWireup="false"
Inherits=Weblog.CDefault" %>
<JDOCTYPE HTML PUBLIC "-//ЮС/ /DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<meta name ="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name ="CODEJLANGUAGEи Content="C#">
<meta name ="vs__defaultClientScript" Content="JavaScript (ECMAScript)">
<meta name ="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body>
<form id="Default" method="post" runat="server">
<div>
Disraeli's Weblog : : : .' :
< b r > • . -
<div>
Copyright &copy; Wrox Press 2001
• ' •- ' •• •• • • < / d i V > ' • •' ' ••••• •••. • • : ••
</form>
</body>
</html>
( xj
I [ File £dst View Favorites Tool? Help
J- Ш -dl j €|Searc*V »nitr&* » ^IMs
Disraeli's Weblog
Copyright © Wrox Press 2001
J
9. Перед тем как запустить проект,
необходимо сообщить VS, что
новая Страница Default.aspx
является именно той страницей,
которую мы собираемся отлаживать.
В Solution Explorer щелкните правой
КНОПКОЙ МЫШИ На Default.aspx
и выберите пункт Set as Start Page.
Откомпилируйте и запустите проект как
обычно. Вы увидите на экране выходной
поток, подобный показанному на рисунке
слева.
Как это работает
Мы создали новый проект и включили в него одну страницу. VS выполнил боль-
шое количество скрытых от наших глаз действий.
Однако в этой странице пока еще нет ничего активного — в ней присутствует
только статический текст, который был введен. Познакомимся с тем, каким обра-
зом можно включить в эту страницу активные элементы.
Добавление активных элементов
Если вам приходилось когда-нибудь создавать ASP-страницы или разрабаты-
вать динамические web-страницы с использованием каких-либо конкурирующих
технологий, то настала пора смело отбросить все, что, как вам кажется, вы знаете
684 Глава 24
о создании активных страниц. В ASP.NET используется подход, который в корне
отличается от всего, с чем вам приходилось сталкиваться ранее.
Учитывая тот факт, что Visual Basic оказался таким феноменально успешным,
компания Microsoft предлагает использовать для создания web-приложений пара-
дигму, аналогичную использовавшейся при создании приложений Windows Forms.
Все строится вокруг управляющих элементов и регулируется событиями.
Представьте себе, например, что есть приложение Windows, которое написано
либо на VB, либо на С#. Если возникает желание добавить к этой форме какую-
либо кнопку и заставить ее выполнять некоторые функции, то вы используете окно
с инструментами, чтобы перенести требуемую кнопку в форму, затем дважды щел-
каете на этой кнопке мышью, чтобы создать обработчик событий, и добавляете не-
кий код. Такой подход к программированию является одновременно и основанным
на использовании управляющих элементов, и регулирующимся событиями.
Раньше в Паутине не существовало понятия управляющих элементов. Для все-
го использовался обычный HTML. Если нужно было нарисовать кнопку, то выпол-
няющемуся на стороне сервера сценарию приходилось отправлять HTML-запрос,
чтобы заставить браузер вывести кнопку на экран. Если эта кнопка нажималась^
то браузеру приходилось снова посылать запрос странице, на этот раз включая
в него дополнительную информацию о нажатии данной кнопки. В этом случае сер-
верный сценарий мог бы среагировать на эту информацию и отправить какую-то
новую или обработанную информацию обратно браузеру.
При использовании .NET большая часть этих событий происходит за кулисами.
Требуется только нарисовать кнопку в программе разработки Designer, a ASP.NET
сам занимается превращением этого управляющего элемента в соответствующий
HTML-текст и отправкой его браузеру, после чего браузер рисует его. Если про-
исходит нажатие этой кнопки, то запрос отправляется обратно на сервер, однако мы
можем зарегистрировать нажатие как событие, на которое мы в состоянии среаги-
ровать. В этом разделе мы увидим, как все это работает на практике.
Практикуй: добавление элемента с сообщением о копирайте
1. Если проект активен, завершите его, закрыв
окно Internet Explorer.
2. Выберите пункт меню View | Design. Чтобы
добавлять на страницу активные элементы,
мы должны обязательно находиться
в режиме Design View.
З.Для упрощения вывода управляющих элементов
выберите в меню пункт View | Details. Вы увидите
что-то, подобное показанному на рисунке слева.
Defaultaspx*
Q^>CoP5
; я ,-.-. • :.
I
i^DisraeK's Weblog
ri^it© Wrox Press
HTMLV;). •"/ '/' t \
2001
4
3
> X
d
4. Выберите и удалите сообщение
о копирайте.
5. Воспользовавшись окном с инструментами,
перенесите мышью управляющий
элемент Label и поместите его между
двумя тегами div, которые до этого
обрамляли сообщение о копирайте.
Вы увидите нечто похожее
на показанное на рисунке справа.
- ,,4..K...\t.: !:
Weblog 4JH^LJ -I
. .._,.„ ..._, .
^
Приложения ASP.NET 685
Маленькое окошко с символами означает, что созданный тег
вообще не является HTML-тегом. Этот тег понятен только
для ASP.NET, поэтому он изображается в виде <?>. (Возможно, вы
считаете, что компания Microsoft должна была предусмотреть вывод
в этом месте маленькой иконки, которая обозначала бы данный
управляющий элемент; вполне вероятно, что в следующей версии
это будет реализовано именно таким образом!)
6. Важным понять, что концептуально управляющий элемент WebForms
Label ничем не отличается от управляющего элемента Windows Forms
Label, которым вы уже умеете пользоваться. В окне Properties
выбранного вами управляющего элемента вы видите его свойства,
в которые можно вносить изменения. Этим мы сейчас и займемся:
• Присвойте СВОЙСТВУ ID Значение labelCopyright
• Присвойте СВОЙСТВУ Text Значение (copyright)
7. Щелкните мышью два раза на странице. Концептуально это то же
самое, что и двойной щелчок мышью на форме Windows и приводит
к точно таким же результатам! В результате создается обработчик
событий, который будет вызываться при загрузке страницы.
8. Введите Следующий КОД В меТОД Page_Load():
private void Page_Load(object sender, System.EventArgs e)
i
••// Какой сейчас год?
i n t y e a r = D a t e T i m e . N o w . Y e a r ; ..:..••••••.•,•.•,.•.•
if (year == 2001}
labelCopyright.Text = "Copyright &copy; Disraeli " + year;
else
labelCopyright.Text = "Copyright &copy; Disraeli 2001-" + year;
Откомпилируйте и запустите проект.
(Нельзя щелкнуть правой кнопкой мыши
на редакторе кода и выбрать пункт меню
View in Browser. Вам придется запустить
код так, как вы делали это ранее.) Вы
увидите, что никаких изменений не прои-
зошло (см. рис. справа).
1 ' ! http://rocalhost/Webloo/Default.«
Fife Edit Vizw Favorite* Tools Help
Disraeli's Weblog
Copyright ©Disraeli 2001
Щ ht^://ioc3fho$yWeblog/Defaultaspx
• Local intranet Л
ОЧЕНЬ ВАЖНО! Если вы используете программу Outlook или какую-либо
другую программу, которая работает с датами, ЗАКРОЙТЕ ЕЕ! ЪАъ\ собираемся
перевести системные часы вперед, и если вы не хотите, чтобы вам немедленно
были выведены все напоминания за ближайшие двенадцать месяцев, то лучше
закрыть эту программу. Это касается также и других приложений, чувствительных
к изменениям даты; если вы не уверены, как они поведут себя при изменении даты,
то закройте и их.
686 Глава 24
Disraeli's Weblog
Copyright ©Disraeli 2001-2002
Теперь переведите ваши системные часы
на один год вперед. Обновите страницу. Вы
увидите картину, подобную представлений
на рисунке слева.
Как это работает
То, что мы сделали, подтверждает факт,
что сообщение о копирайте является дина-
мическим. Когда страница создается, она
ИСПОЛЬЗует метод DateTime.NowO ДЛЯ ПОЛу-
чения текущей даты и вносит соответству-
ющие изменения в сообщение о копирайте.
Но каким образом активный элемент попал на страницу? Чтобы понять это,
откройте редактор HTML для данной страницы. Переместившись немного вниз,
вы сможете обнаружить следующий тег:
<%@ Раде 1апдиаде=ис#п Codebehind=nDefault.aspx.es" AutoEventWireup="false"
Inherits=Weblog.CDefault" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN* >
<html>
<head>
<meta name ="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name ="CODE_LANGUAGE" Content="C#">
<meta name = "vs__defaultClientScript" Content="JavaScript (ECMAScript)">
<meta name ="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body>
<form id="Default" method=llpost11 runat="server">
<div>
Disraeli's Weblog
<br>
<diy>
<asp: Label id="labelCopyright11
runat="server">(copyright)<asp:Label>
</form>
</body>
</html>
Когда приходит запрос на .aspx-страницу, ASP.NET просматривает всю стра-
ницу целиком, прежде чем предпринимать какие-либо действия. При этом выяв-
ляется, какие составные части страницы являются неизменяемыми, а какие —
динамическими. В приведенном выше примере кода выделен тег <asp:Labei>.
ASP.NET знает, что этот тег является активной частью страницы. В результате
исключения устанавливается, что оставшаяся часть страницы неизменяемая.
В конечном счете, для ASP.NET необходимо, чтобы вся страница была неизме-
няемой, поэтому основная роль ASP.NET заключается в превращении динамиче-
ских элементов страницы в неизменяемый HTML. Большинство современных web-
браузеров ограничены в своих возможностях. Основной подход ASP.NET заключа-
ется в том, чтобы провести большую часть обработки на сервере и вернуть назад
HTML, который может быть выведен браузером. В отдельных случаях ASP.NET
допускает отправку браузеру некоторого кода, который должен быть им выполнен.
Вероятнее всего, в течение последующих нескольких лет все большая и большая
часть работы будет выполняться именно браузером, однако на сегодняшний денк
Приложения ASP.NET 687
мы предпочитаем, чтобы все выполнялось на сервере, что и происходит в приве-
денной программе. Посмотрим еще раз на код ASP.NET:
<div>
<asp:Label id=lllabelCopyright" runat="server"> (copyright) <asp:Label>
Такой код фактически получает IE: I
<div>
<span id="labelCopyright">Copyright &copy; Disraeli 2001-2002</span>
:——*~ 1 При создании страниц ASP.NET с помощью Visual
'L™J Studio.NET, мы по умолчанию используем модель, в кото-
рой страница кодируется в двух составляющих. Первая —
это .aspx-файл, в котором хранится шаблон данной страницы и определяется,
в каком именно месте у страницы могут появиться активные элементы. Вторая
часть представляет собой файл с расширением .cs или .vb, в котором содержится
код обработчика события (см. рис. слева). Когда производится двукратный щелчок
мышью на странице для получения доступа к обработчику события Load, мы фак-
тически открываем новый файл.
Исходный файл на С#, известный под названием файла с кодом поддержки, ис-
пользует то же имя, что и файл с расширением . aspx, и неразрывно с ним связан.
В нем содержится определение класса, который является производным от класса
System.Web.UI.Page.
/// <summary>
/// Краткое описание класса CDefault.
///</summary >
public class CDefault : System.Web.UI.Page
ASP.NET автоматически добавляет префикс "С" (от английского слова "class")
к имени класса, чтобы уменьшить вероятность конфликтов между именами.
Данный класс вызывает событие Load, которое исполняется при загрузке стра-
ницы. Это происходит после того, как ASP.NET загрузил файл ,aspx и исследовал
его с целью выяснения того, какие динамические элементы имеются на станице.
Представляет интерес и следующий момент. Каждый динамический элемент,
определенный на странице, существует также как защищенный член класса. Мы
изменили свойство ID у управляющего элемента на labeicopyright, и именно это
является членом, определенным на форме:
///summary
/// Краткое описание класса CDefault.
/// </summary>
public class CDefault : System.Web.UI.Page
{
protected System.Web.Ul.WebControls.Label labelCopyright;
Это еще одна классическая иллюстрация того, насколько на самом деле Web-
Forms и Windows Forms похожи друг на друга. Когда мы рисуем управляющий
элемент в форме Windows, то происходит добавление аналогичного члена. После
того как он размещен, мы получаем возможность осуществлять к нему доступ
программным путем:
688 Глава 24
private void Page_Load(object sender, System.EventArgs e)
{
// какой сейчас год?
int year = DateTime.Now.Year;
if (year == 2001)
labelCopyright.Text = "Copyright &copy; Disraeli • + year;
else .
labelCopyright.Text = "Copyright &copy; Disraeli 2001-" + year;
}
Здесь ASP.NET загрузил .aspx-файл и осуществил поиск динамических элементов.
Тем самым ASP.NET имеет в памяти образ страницы в коде HTML с включенны-
ми в этот код маркерами в тех местах, где он нашел активный элемент. После это-
го ASP.NET предоставляет странице и ее управляющим элементам возможность
заменить маркеры на их HTML-код. Присваивая значение Text управляющему
элементу Label, мы сообщаем этому элементу, что, когда ASP.NET запросит
вставку HTML-кода на место маркера в образе страницы, где зарезервировано
для него место, управляющий элемент Label выдаст следующий HTML-код:
<span id=nlabelCopyrightII>Copyright fccopy; Disraeli 2001-2002</span>
Другими словами, он возьмет значение, которое хранится в свойстве Text, и за-
ключит его в теги <span>.
Поэтапно ASP.NET определит, что все управляющие элементы предоставили
свои HTML-коды, составляющие ту часть страницы, за которую они отвечают,
и отправит законченный HTML-образ браузеру, который выведет его на экран.


Категория: информатика | Просмотров: 9735 | Добавил: basic | Рейтинг: 5.0/1
Всего комментариев: 3
3 aldredlachie  
0
Watches had usually been the 1st and foremost fascination for both people https://vimeo.com/111337666 - omega deville co-axial replica . Apart from just being a time ticking clock or watch, it's got grow to be extremely modern and an icon of fashion. The two people use watches. The watches worn by males tend to be broader and greater in condition and measurement in order to depict their manhood. Alternatively womens watches which happen to be skinny and lovable searching, delivers out the tender and gentleness of the lady.One of many greatest vendor and promoter of all sorts of trendy watches are definitely the Casio watches. It is actually divided into 3 basic categories a Mens watches b Womens Watches and c Luxurious watches. These watches arrives in numerous colors setting up from silver, golden and also numerous sporty style funky colours. It is this sporty glimpse from the casio watches for which it's come to be famous among the children and adolescents. In addition to this, casio watches also have a exclusive area for kids. The Casio BabyG is shock evidence with Gshock know-how. Several of this sort of watches popularly known as the children watches, glance extra like toys however they have got a similar capabilities.Casio watches are preset in a noticeably minimal selling price selection to cater to all expectations of men and women. The several forms of seem also grasps a larger section while in the market place. They are available in diverse shapes and sizes and they are aimed to portray the temperament of a unique group of consumers for eg Young children, adolescents, grownups, women of all ages and senior citizens. To cater into the senior citizens, it has released watches which glance a lot more official having a chain band such as the Casio Edifice manufacturer or Casio AMW 320 R1EV https://vimeo.com/111316725 - omega deville co-axial replica . Some watches might also have a very electronic show. Among the most famous check out could be the Casio pathfinder that has a solar powered titanium bracelets. Using the scientific progression as well as developing desire for classy watches, organizations have started out endorsing watches with distinctive options similar to a Barometer, a photo voltaic altimeter and perhaps a electronic compass. Enabled with these many attributes can help the Casio model turn out to be really well known between both of those adults along with children.Womens Watches come in distinct types. It might also encompass the identical multi capabilities like the mens watches. These watches may be silver plated or gold plated that makes it vibrant and desirable to all. One feminine design casio check out would be the famous Casio Waveseptor Watches. The subsequent class of watches are classified as the Luxurious watches of casio sequence https://vimeo.com/111377653 - replica omega deville hour vision black . They are the most expensive types. An incredibly typical instance is Casio avenue rider which is the very best companion for joggers and sportsmen https://vimeo.com/111377650 - omega seamaster planet ocean replica . It may possibly even be utilized by climbers and biker in rocky or city terrain https://vimeo.com/111377656 - omega seamaster aqua terra replica . Some luxurious watches are drinking water evidence and can even be used by divers and swimmers. As a result, just like our Computers as well as other house appliances, even the observe engineering has enhanced to aid observe customers less than any instances. Similar Articles Casio Watches Your very best Invest in Acquire branded watches on-line Net Is the Suitable Source to buy for your personal Selection of a Fantastic Branded Enjoy Offer a Mystic Attraction and style in your Wrist by Wearing Designer Watches .

Related Articles:

2 Uugreaoeu  
0
прости за неотступность. издревле шарил вменяемое очерчивание вкладов, их динамики. Для тех кто именно не осознает, это не так просто-напросто. На горизонтах веба бесчисленно чего есть. Но вменяемой извещении о вкладах не так в избытке.
далее ссылка на статью. в силах кому-то из вас понадобится.

Если не туда водворил пост переместите пожалуйста. Благодарю.
http://rusbanksite.ru/%D0%B2%D1%8B%D0%B3%D0%BE%D0%B4%D0%BD%D1%8B%D0%B5-%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4%D 1%8B/ - Только у нас вы установите банковские вклады коие подсобят вас и вашим купюрами

1 Busriatec  
0
Помогите советом. Пару дней назад решился покупать в онлайн аптеке несколько препаратов. Чтобы себя разумеется и ради жены тоже.
Аптеку нашел сквозь сего сайт.
http://sdfg.freeiz.com/
Понравились цены и бонусы. Там дозволительно покупать громоздкий обьем почти даром.

Оплатил без проблем. Днесь жду если прийдет. жду и сомневаюсь. Боюсь что ошибся в чем-то.
А потому прошу совета. Кто покупал с помощью онлайн аптеки? Я сделал всетаки правильно?

P.S. Господа модераторы. Извините если написал не туда. Перенесите тему в регулярный раздел. Спасибо.

Имя *:
Email *:
Код *:
Календарь
«  Февраль 2010  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

krutoto.ucoz.ru
Бесплатный конструктор сайтов - uCoz