ASP.NET - серверные контролы
- Предыдущая страница Страницы WebForms
- Следующая страница События WebForms
Серверные контролы - это теги, понимаемые сервером.
Ограничения Classic ASP
Ниже приведен код, скопированный из предыдущего раздела:
<html> <body style="background-color:#e5eecc; text-align:center;"> <h2>Hello CodeW3C.com!</h2> <p><%Response.Write(now())%></p> </body> </html>
Этот код отражает ограничения Classic ASP: блок кода должен быть расположен в месте, где нужно выводить данные.
Через Classic ASP мы не можем отделить executable code от HTML. Это делает страницу трудной для чтения и поддержания.
ASP.NET - серверные контролы
Через серверные контролы, ASP.NET решил проблему "итальянской пасты" кода, описанную выше.
Серверные контролы - это теги, понимаемые сервером.
Существуют три типа серверных контролей:
- HTML-серверные контролы - традиционные HTML-теги
- Серверные контролы для веба - новые теги ASP.NET
- Серверные контролы валидации - для проверки ввода
ASP.NET - HTML-серверные контролы
HTML-серверные контролы - это HTML-теги, понимаемые сервером.
Элементы HTML в ASP.NET обрабатываются как текст. Чтобы сделать эти элементы программируемыми, нужно добавить к ним Атрибут runat="server"Эта атрибут указывает, что этот элемент является серверным контролем. Важно также добавить атрибут id для идентификации серверного контрола. Этот id может быть использован для работы с серверным контролем в время выполнения.
Комментарий:Все HTML-контроли должны быть расположены внутри тега <form> с атрибутом runat="server". Атрибут runat="server" указывает, что форма должна обрабатываться на сервере. Он также указывает, что включенные в нее контролы могут быть доступными для серверного скрипта.
В следующем примере мы объявили серверный контрол HtmlAnchor в файле .aspx. Затем мы работаем с атрибутом HRef контрола HtmlAnchor в обработчике события. Событие Page_Load - это один из типов событий, которые понимает ASP.NET:
Комментарий:Обработчик событий (event handler) - это подпрограмма, которая выполняет код для данного события.
<script runat="server"> Sub Page_Load link1.HRef="http://www.codew3c.com" End Sub </script> <html> <body> <form runat="server"> <a id="link1" runat="server">Посетить CodeW3C.com!</a> </form> </body> </html>
Совет:Исп�行ируемый код himself уже был перемещен вне HTML.
ASP.NET - Веб-контролы
Веб-контролы - это особые теги ASP.NET, которые сервер может понять.
Как и веб-контроли HTML, веб-контроли также создаются на сервере, им также необходим атрибут runat="server", чтобы они работали. Однако веб-контроли не обязаны маппингать какие-либо существующие элементы HTML, они представляют более сложные элементы.
Синтаксис создания серверного веб-контроля:
<asp:control_name id="some_id" runat="server" />
В следующем примере мы объявили серверный контрол Button в файле .aspx. Затем мы создали обработчик события Click, который может изменить текст на кнопке:
<script runat="server"> Sub submit(Source As Object, e As EventArgs) button1.Text="Ты нажал меня!" End Sub </script> <html> <body> <form runat="server"> <asp:Button id="button1" Text="Нажми меня!" runat="server" OnClick="submit"/> </form> </body> </html>
ASP.NET - Контрол сервера проверки
Контрол сервера проверки используется для проверки ввода пользователя. Если ввод пользователя не прошел проверку, пользователю будет отображено сообщение об ошибке.
Каждый контрол проверки выполняет определенный тип проверки (например, проверку конкретного значения или диапазона значений).
По умолчанию, при нажатии на Button, ImageButton или LinkButton выполняется проверка страницы. Вы можете предотвратить проверку при нажатии на кнопку, установив атрибут CausesValidation в false.
Синтаксис создания серверного контрола Validation:
<asp:control_name id="some_id" runat="server" />
В следующем примере мы声明 TextBox, Button и RangeValidator контролы в файле .aspx. Если проверка не успешна, текст "Значение должно быть от 1 до 100!" будет отображаться в контроле RangeValidator:
<html> <body> <form runat="server"> Ввести число от 1 до 100: <asp:TextBox id="tbox1" runat="server" /> <br /><br /> <asp:Button Text="Submit" runat="server" /> </p> <p> <asp:RangeValidator ControlToValidate="tbox1" MinimumValue="1" MaximumValue="100" Type="Integer" Text="Значение должно быть от 1 до 100!" runat="server" /> </p> </form> </body> </html>
- Предыдущая страница Страницы WebForms
- Следующая страница События WebForms