https://technet.microsoft.com/en-us/library/ms143221(v=sql.105).aspx |
Серверные элементы управления
TextBox
Он заменяет элементы разметки < textbox > и < textarea >. Они оба вводят текст, только < textbox > — однострочный, а < textarea > — многострочный. Соответственно, при свойстве textmode, равном MultiLine, получится многострочное поле ввода, а при SingleLine — однострочное. Если textmode равен Password, введенные данные заменяются звездочками, как при < Input Type="Password" >. Естественно, это нужно в основном для ввода пароля.
Свойство rows задается при textmode, установленном в MultiLine, и задает количество строк для ввода. Аналогично функционирует свойство columns — количество символов в строке.
Если свойство Wrap установлено, то текст переходит на новую строчку, чтобы полностью помещаться в окне. Эта возможность должна быть хорошо известна по текстовым редакторам:
<script runat="server" language="C#"> void Page_Load() { if (Page.IsPostBack) { if (txtName.Text != "") lblName.Text = "Вы ввели имя:" + txtName.Text; if (txtAddress.Text != "") lblAddress.Text = "Вы ввели адрес:" + txtAddress.Text; if (txtPassword.Text != "") lblPassword.Text = "Вы ввели пароль:" + txtPassword.Text + "<br>Спасибо за регистрацию!"; input.Visible = false; } } </script> <html xmlns=""http://www.w3.org/1999/xhtml""> <head> <title>Регистрация нового пользователя</title> </head> <body> <form runat="server" id="input"> <div style="text-align: left"> <table> <tr> <td style="width: 100px"> Введите имя: </td> <td style="width: 100px"> <asp:TextBox ID="txtName" runat="server" /></td> </tr> <tr> <td style="width: 100px"> Введите адрес:</td> <td style="width: 100px"> <asp:TextBox ID="txtAddress" runat="server" TextMode="multiline" Rows="5" Wrap="true" /></td> </tr> <tr> <td style="width: 100px"> Введите пароль:</td> <td style="width: 100px"> <asp:TextBox ID="txtPassword" runat="server" TextMode="password" /></td> </tr> </table> </div> <br /> <input type="Submit"><br /> </form> <br /> <asp:Label ID="lblName" runat="server" /><br /> <asp:Label ID="lblAddress" runat="server" /><br /> <asp:Label ID="lblPassword" runat="server" /><br /> </body> </html>
За счет манипулирования свойством видимости формы одна и та же страница выглядит совершенно по-разному до и после постбэка. На входе видна форма, а на выходе — результат, и так как форма скрыта, никакого кода для нее не генерируется.
Сохраните эту форму в файле Registration.aspx, мы к ней еще вернемся.
У всех классов, унаследованных от WebControl, в ASP .NET 2.0 появился метод Focus(). Он устанавливает фокус в элемент управления. Чаще всего применяется именно к TextBox. Добавьте txtName. Focus() в событие Page_Load(), и курсор при загрузке страницы уже будет установлен в нужной строке ввода.
RadioButton
Переключатели не ходят в одиночку. Один переключатель на странице не имеет смысла. Нужны хотя бы два. Типичный набор переключателей определяется так:
<asp:RadioButton ID="RadioButton1" Runat="server" Text="Yes" GroupName="Set1" /> <asp:RadioButton ID="RadioButton2" Runat="server" Text="No" GroupName="Set1"/>
Атрибут Text выводится справа от переключателя. В этом примере важно, что у обоих переключателей совпадает свойство GroupName. Это позволяет им работать как одно целое. Преимущество отдельных переключателей над RadioButtonList в том, что между переключателями можно поместить любой текст, картинки и другие элементы.
У RadioButton есть событие CheckedChanged, которое вызывается, когда пользователь выбирает один из переключателей группы. Чтобы обработчик этого события вызывался, необходимо установить свойство AutoPostBack:
<%@ Page Language="C#" %> <script runat="server"> protected void option1_CheckedChanged(object sender, EventArgs e) { if(option1.Checked) Message.Text = "Вы выбрали " + option1.Text; if (option2.Checked) Message.Text = "Вы выбрали " + option2.Text; if (option3.Checked) Message.Text = "Вы выбрали " + option3.Text; } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Шуточное голосование</title> </head> <body> <br /><br /> У кого самые мохнатые лапы в мире?<br /><br /> <form runat="server" id="voting"> <asp:RadioButton id="option1" runat="server" Text="медведя" OnCheckedChanged="option1_CheckedChanged" AutoPostBack = "true" GroupName="Choice" /><br /> <asp:RadioButton id="option2" runat="server" Text="мохноногого тушканчика" OnCheckedChanged="option1_CheckedChanged" GroupName="Choice" AutoPostBack = "true" /> <br /> <asp:RadioButton id="option3" runat="server" Text="хоббитов" OnCheckedChanged="option1_CheckedChanged" AutoPostBack = "true" GroupName="Choice"/><br /> <br /><br /> </form> <asp:Label id="Message" runat="server" /> </body> </html>