Фактический обработчик событий является довольно-таки незамысловатым. Он просто приводит объект-отправитель к типу Control, читает его свойство ID и выводит сообщение, информирующее о распознании события.
Теперь переключитесь на отображение исходного кода HTML и отредактируйте дескрипторы текстового поля и флажка для связывания их событий ServerChange с новым обработчиком событий, как показано ниже:
<input type="text" runat="server" ID="Textbox1" Size="10"
Name="Textbox1" OnServerChange="Ctrl_ServerChange"><br />
<input type="checkbox" runat="server" ID="Checkbox1"
Name="Checkbox1" OnServerChange="Ctrl_ServerChange">
На заметку! Visual Studio обеспечивает более высокий уровень поддержки на стадии проектирования для событий элементов управления Web. При работе с такими элементами управления можно связывать обработчики событий с использованием специального представления событий в окне Properties — необходимо лишь щелкнуть на пиктограмме с изображением молнии. Для серверных элементов управления HTML это свойство недоступно, хотя все же можно заставить Visual Studio сгенерировать обработчик для события по умолчанию элемента управления, дважды щелкнув на нем.
Затем дважды щелкните на элементе управления HtmlSelect, чтобы создать обработчик событий для окна списка. Этот обработчик событий циклически проходит по коллекции Items элемента управления и записывает значения всех выбранных элементов на Web-страницу следующим образом:
protected void List1_ServerChange(object sender, System.EventArgs e)
{
Response.Write("<li>ServerChange detected for List1. " +
"The selected items are:</li><br />");
foreach (ListItem li in List1.Items)
{
if (li.Selected)
Response.Write (" - " + li.Value + "<br />");
}
}
Наконец, кнопка Submit обрабатывает событие ServerClick, как показано ниже:
protected void Submitl_ServerClick(object sender, System.EventArgs e)
{
Response.Write("<li>ServerClick detected for Submit1.</li>");
}
В качестве дополнительного действия при создании страницы обработчик события Page.Load добавляет еще три элемента к окну списка, если страница запрашивается впервые. Этим демонстрируется простота программного добавления элементов списка.
protected void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
предыдущая следующая страница оглавление
159