Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Техн. разр. Internet-приложений 1-9 / Лабораторная работа 1.doc
Скачиваний:
41
Добавлен:
29.03.2016
Размер:
174.59 Кб
Скачать

Void Page_Load()

{

Label ShopNews = new Label();

ShopNews.Text = "Новости торговой площадки";

ShopNews.Font.Size=20;

ShopNews.ForeColor=Color.Red;

ShopNews.BackColor=Color.LightGray;

ShopNews.BorderWidth=4;

ShopNews.BorderStyle=BorderStyle.Groove;

ShopNews.Height=50;

ShopNews.Width=500;

frmDemo.Controls.Add(ShopNews);

}

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

<title>Торговая площадка</title>

</head>

<body>

<center>

<h2>Демонстрация метки</h2><br />

<form id="frmDemo" runat="server">

</form>

</center>

</body>

</html>

Обратите внимание на директиву <%@ Import Namespace= "System.Drawing" %>. Директива импорта нужна, чтобы обращаться к перечислению Color названий цветов, определенному в System.Drawing.

Посмотрим, что выдал ASP .NET браузеру. Вот код HTML, относящийся к нашей метке:

<form name="frmDemo" method="post" action="shop.aspx" id="frmDemo">

<div>

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"

value="/wEPDwULLTEzODAzNzU2NDZkZH95eciStELThSpcgXVWEFYeQxpR" />

</div>

<span id="ShopNews" style="display:inline-block;color:Red;back-

ground-color:LightGrey;border-width:4px;border-style:Groove;font-

size:20pt;height:50px;width:500px;">Новости торговой площадки</span>

</form>

Как видим, ASP .NET превратил метку в элемент разметки <span>, задав ему стили CSS. В форме появился еще один невидимый элемент по имени =__VIEWSTATE, который мы скоро обсудим.

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(), и курсор при загрузке страницы уже будет установлен в нужной строке ввода.