конспект лекций, вопросы к экзамену

События и обработка событий в ASP.NET.

При работе с серверными элементами управления на странице ASP.NET логика страницы состоит в основном из откликов на события, вызываемые элементами управления.

В качестве примера можно добавить кнопку на веб-страницу ASP.NET и написать обработчик событий нажатия кнопки. Хотя обычно это используется для веб-страниц, работающих только с клиентским скриптом (обрабатывая событие onclick кнопки в динамическом HTML), ASP.NET позволяет использовать эту модель в серверной обработке. ASP.NET события, связанные с серверными элементами управления, вызываются на клиенте, а обрабатываются на веб-сервере с помощью страницы ASP.NET. Модель событий элемента управления ASP.NET требует захвата сведений о событии, вызванном на клиенте, и передачи сообщения о событии серверу с помощью http. серверный веб-элемент управления CheckBox создает событие CheckedChanged, если пользователь снимает или отмечает флажок. Некоторые серверные элементы управления поддерживают более абстрактные события. Например, серверный веб-элемент управления Calendar создает событие SelectionChanged, более абстрактную версию события нажатия.

Все события передают два аргумента: объект, который вызвал событие, и объект события, который содержит все сведения о данном событии. Второй аргумент обычно принадлежит к типу EventArgs, но иногда может принадлежать к типу, характерному для данного элемента управления.

Привязка события к методу:

<asp:button id="SampleButton" runat="server" 
   text="Submit" onclick="ButtonClick" />

При редактировании веб-страницы ASP.NET в Visual Studio можно разными способами создавать серверные обработчики событий для элементов управления и страницы. Если элемент управления поддерживает более чем одно событие, обычно он настраивается так, что одно из них является событием по умолчанию. Например, событием по умолчанию для элемента управления Button является событие Click.

В следующем примере кода демонстрируется обработчик событий страницы Load:

protected void Page_Load(object sender, EventArgs e)
{if (IsPostBack)
    {Response.Write("<br>Page has been posted back."); }}

 

 

30.12.2019; 08:00
просмотров: 141