Лекция: Базовые понятия формы. Пример Web-формы
Web-формы в ASP.NET — это основной элемент динамического Web-сайта. Web-формы определяются как программируемые Web-страницы, которые служат пользовательским интерфейсом в приложениях ASP.NET.
Web-форма — это комбинация кода HTML, программного кода и элементов управления. Web-формы в приложении ASP.NET представлены файлами с расширением .aspx. Именно по расширениям Internet Information Server распознает файлы как Web-формы. При этом на одном сервере вполне могут сосуществовать как файлы .asp, так и файлы .aspx — обрабатываться они будут по разному.
Физически Web-форма представлена файлом с расширением. aspx. Расширение любой HTML-страницы можно изменить на .aspx. При этом представление страницы с новым расширением будет тождественно представлению исходной страницы. Иными словами, Web-формы совместимы снизу вверх с обычными HTML-страницами. Особенность Web-форм состоит в способе, при помощи которого программный код отделяется от самой формы. Исходный код (написанный не на C++) может храниться в отдельном не скомпилированном файле. Или же программный код (снова таки, не на C++) может быть вложен в. aspx-файл. И, наконец, код (написанный на С#, VB или C++) может храниться в предварительно скомпилированной сборке, содержащей динамически подключаемую библиотеку (DLL). Когда страницы загружаются Web-сервером, выполняется код, описывающий пользовательский интерфейс. Этот код динамически формирует отображаемую клиентом страницу.
Web-формы обычно создаются двумя способами:
в окне Solution Explorer можно щелкнуть правой кнопкой мыши по строке проекта, в контекстном меню выбрать Add New Item (Добавить новый элемент) и в списке шаблонов выбрать Web Form;
можно просто добавить в проект существующую страницу HTML с готовым оформлением и переименовать ее в окне Solution Explorer, присвоив ей расширение .aspx. Необходимые изменения на страницу будут внесены автоматически.
Web-форма состоит из двух частей:
отображаемого содержимого, или презентации формы. Как правило, отображаемое содержимое описывается на языке HTML;
программного кода, который описывает логику взаимодействия с визуальными элементами.
Главное специфическое для ASP.NET содержание Web-формы — это специальные теги с атрибутами. На форме может быть три типа тегов с атрибутами:
страничные атрибуты, (@ Page), которые определяют общие параметры для всей Web-формы;
атрибуты тела Web-формы (body), которые определяют общие параметры отображения содержимого страницы;
атрибуты форм (form), которые определяют параметры работы с формой — набором элементов управления (не путать с Web-формой).
Пример Web-формы
В простейшей веб-форме requestSomething.aspx пользователь может ввести некоторую личную информацию и нажать на кнопку Submit (Отправить). После отправки веб-формы он получает ответ в виде содержимого, введенного им в текстовом поле с именем Tell Me About Yourself And Click Submit (Расскажите о себе и нажмите на кнопку Submit [Отправить]), а также в поле You Said (Вы сказали). Ниже на рисунке показана форма requestSomething.aspx после отправки информации на сервер.
Программный код данной Web-формы приведён ниже:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace SimpleWF
{
/// <summary>
/// Summary description for requestSomething.
/// </summary>
public class requestSomething: System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.TextBox txtYourself;
protected System.Web.UI.WebControls.TextBox txtResponse;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.Label Label1;
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the
// ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support — do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.txtYourself.TextChanged += new
System.EventHandler(this.txtYourself_TextChanged);
this.Load += new
System.EventHandler(this.Page_Load);
}
#endregion
private void txtYourself_TextChanged
(object sender, System.EventArgs e)
{
this.txtResponse.Text = this.txtYourself.Text;
}
}
}