Основы ASP.NET 2.0

Button


Button — это командная кнопка, нажатие на которую часто приводит к отправке данных на сервер. Можно создавать кнопки двух типов: для передачи данных формы (submit button) или командные кнопки для выполнения различных функций, связанных с данной кнопкой. Если на форме есть несколько кнопок, свойство CommandName позволяет узнать, какая именно кнопка была нажата.

ASP .NET поддерживает 3 вида событий.

  • События, которые происходят в браузере клиента и обрабатываются кодом на Javascript.
  • События загрузки страницы.
  • События элементов управления.

Например, чтобы обработать щелчок на кнопке, мы переопределяем событие Click.

protected void Button1_Click(object sender, EventArgs e) {

}

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

Например, мы хотим создать форму для заполнения резюме. Автор может иметь заранее неизвестное нам количество предыдущих мест работы. Добавим на форму кнопку, при нажатии на которую в форму добавляется один элемент ввода текста:

<%@ Page Language="C#"%> <script runat="server">

static int num=0; static TextBox[] tb=new TextBox[10]; void AddExperience(Object sender, EventArgs e) { if (num < 10) // Чтобы не возникало ошибки обращения к несуществующему элементу массива { TextBox newBox = new TextBox(); newBox.ID = "box" + num; tb[num] = newBox; num++; } for (int i=0; i<10; i++) // Добавление на форму контролов из массива. { if (tb[i] != null) { places.Controls.Add(tb[i]); Label lb=new Label(); lb.Text="<br><br>"; places.Controls.Add(lb); } else break; } }


</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head> </head> <body> <form runat="server" id="Experience"> <asp:Label ID="Label1" runat="server" text=" Введите Ваше последнее место работы" /> <asp:Panel id="places" runat="server"> <asp:TextBox id="first" runat="server" /> <br /> <br /> </asp:Panel> <asp:Button id="Add" Text="Еще" OnCommand="AddExperience" CommandName="Add" runat="server" /> </form> </body> </html>

Здесь мы имеем массив из 10 элементов типа TextBox. Новый элемент создается в момент нажатия на кнопку "Еще". Можно добавить до 10 новых элементов. Как и раньше, они размещаются в контейнере, это нужно, чтобы они выводились до кнопки.

При помощи свойства OnClientClick можно задать клиентский сценарий на JavaScript. Его значением может быть встроенная функция языка JavaScript, или функция, описанная в теле страницы. Клиентский код выполняется до серверного кода, заданного в свойстве OnClick.


Содержание раздела