Опубликован: 04.05.2010 | Уровень: для всех | Доступ: платный
Лекция 5:

Разработка на ASP.NET. Жизненный цикл страницы, пользовательский интерфейс

< Лекция 4 || Лекция 5: 123456 || Лекция 6 >

6.3.4. Использование Literal и HiddenField

Элемент управления Literal представляет собой один из способов вывода информации на экран. Literal можно использовать в качестве контейнера для размещения HTML элементов на странице. Чаще всего его используют для динамического добавления текста. Схожие возможности по добавлению текста предоставляет элемент Label, Literal отличается от него тем, что не добавляет дополнительных HTML элементов к тексту. Label, например, размещает текст внутри тэга <span>, Panel – внутри <div> и т.д. Размещение элементов внутри тэгов создает возможность для поддержки ими стилей оформления, Literal же, не имеет такой возможности. Рекомендуется использовать элемент Literal в том случае, когда необходимо размещать текст на странице без использования дополнительной разметки, либо в том случае, когда существует HTML текст (например, хранящийся в файле или базе данных), содержащий форматирование с использованием тэгов, и его необходимо вывести на экран.

Самым важным свойством элемента управления Literal является Mode. Возможны три значения этого свойства (табл. 6.8).

Таблица 6.8. Значения свойства Mode элемента управления Literal
Значения Описание
Transform Любая разметка, добавляемая к элементу управления, преобразуется таким образом, чтобы максимально удовлетворять особенностям протокола браузера, запрашивающего страницу.
PassThrough Добавляемая к элементу управления разметка передается браузеру как есть, без каких-либо модификаций.
Encode Добавляемая к элементу управления разметка декодируется с использованием метода HtmlEncode, преобразующего HTML представление страницы в текст.

Например, при использовании следующего примера элемента Literal могут быть получены различные результаты.

При использовании значения Mode=PassThrough, как показано в следующем фрагменте исходного кода:

private string s = 
"<input id='Button1' type='button' value='Добавить' /><br/>
      <table border='1' cellpadding='1' cellspacing='0'>
        <tr>
          <td>Идентификатор</td>
          <td>наименование</td>
          <td>кол-во</td>
        </tr>
        <tr>
          <td>1</td>
          <td>Велосипед горный</td>
          <td>10</td>
        </tr>
        <tr>
          <td>2</td>
          <td>Велосипед дорожный</td>
          <td>50</td>
        </tr>
      </table>";
protected void Page_Load(object sender, EventArgs e)
{
    Literal1.Mode = LiteralMode.PassThrough;
    Literal1.Text = s;
}

будет получен результат, изображенный на рис. 6.9.

Использование Literal для отображения информации в режиме PassThrough

Рис. 6.9. Использование Literal для отображения информации в режиме PassThrough

А при использовании режима Encode результат, изображенный на рис. 6.10.

Использование Literal для отображения информации в режиме Encode.

Рис. 6.10. Использование Literal для отображения информации в режиме Encode.

Элемент управления HiddenField целесообразно использовать в том случае, когда на странице необходимо сохранить какие-то данные, но не отображать их. Например, это может быть какая-нибудь информация о пользователе, которая необходима для выполнения сервисных функций.

У элемента HiddenField существует лишь одно свойство, заслуживающее внимания. Это Value, посредством которого ему и присваивается значение.

При использовании элемента управления HiddenField необходимо помнить о безопасности, т.к., несмотря на то, что информация, хранящаяся в данном элементе, не отображается на экране, ее легко можно увидеть, просмотрев исходный код страницы. Более того, пользователь может изменить данную информацию перед инициированием postback и отправкой ее на сервер. Поэтому не рекомендуется хранить какие-либо конфиденциальные данные, а также данные, критичные для выполнения приложения на сервере в данном элементе управления.

6.3.5. Использование Panel

Элемент управления Panel (при рендеренге страницы заменяется на div ) используется для группирования элементов управления. При этом он выступает в качестве контейнера, способного вмещать в себя различные другие элементы управления, манипулирование которыми становится возможным как единым целым. Например, возможно скрытие или показ элемента Panel со всеми входящими в него элементами путем задания значения свойства Visible равным true или false.

При размещении внутри Panel элементов для ввода текста и кнопок, становится возможным определение кнопки, используемой по умолчанию. Это означает, что при вводе текста в элементы управления, размещенные внутри Panel, пользователь имеет возможность нажать кнопку Enter, что будет равносильно щелчку левой кнопки мыши по кнопке, указанной в свойстве DefaultButton элемента Panel. Это позволяет создавать более эффективные пользовательские формы для ввода данных.

Panel облегчает размещение динамически создаваемых элементов управления на форме. И, наконец, с помощью этого элемента управления становится возможным создание областей в рамках страницы, обладающих собственными свойствами поведения и внешнего вида. Это выражается в следующем:

  1. С помощью Panel можно создать область, содержащую полосы прокрутки. Для этого достаточно установить соответствующее значение свойства ScrollBars, а также установить необходимые значения свойств Height и Width.
  2. С помощью Panel можно создать область группы с заголовком. Для этого необходимо ввести в свойство GroupingText строку заголовка группы. Пример изображения группы, получаемой в этом случае, приведен на рис. 6.11.
    Пример изображения группы элементов

    Рис. 6.11. Пример изображения группы элементов

    Следует отметить, что при установке свойства GroupingText становится невозможным использование полос прокрутки.

  3. С помощью Panel можно создать область страницы, имеющей отдельно заданные свойства, такие как цвет фона, рамка и т.д.

6.3.7. Использование LinkButton

Элемент управления LinkButton представляет собой кнопку, которая выглядит как гиперссылка, но имеет поведение кнопки. Этот элемент управления внедряет в HTML код страницы элементы JavaScript, необходимые для обработки событий кнопки, поэтому необходимо, чтобы клиентский браузер поддерживал JavaScript.

LinkButton может быть двух разновидностей: командная кнопка и кнопка перенаправления. Кнопка перенаправления не содержит сопоставленного с ней обработчика события и просто инициирует событие postback. Командная кнопка ведет себя как обычная кнопка и может иметь несколько обработчиков событий, сопоставленных с ней. Как и обычная кнопка, она может реагировать на щелчок левой кнопки мыши с помощью события LinkButton_Click, кроме того, возможна обработка события LinkButton_Command. В качестве аргументов, обработчику события Command передаются значения свойств CommandName и CommandArgument. С помощью этого события становится возможным определение того, какая из нескольких, расположенных на странице кнопок была нажата.

В следующем примере на странице размещены два элемента LinkButton:

<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Открыть" 
      CommandArgument="c:\1.txt" OnCommand="LinkButton_Command"> Открыть 
</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" 
      CommandArgument= "http://www.yandex.ru" CommandName="Перейти" 
      OnCommand="LinkButton_Command"> Перейти</asp:LinkButton>

Процедура LinkButton_Command выводит на экран сообщение, в котором указаны аргументы, передаваемые обеими кнопками в случае их нажатия:

protected void LinkButton_Command(object sender, CommandEventArgs e)
{
    Response.Write("Команда: " + e.CommandName + ", параметр: " +
    e.CommandArgument);
}

6.3.8. Ключевые термины

Пользовательский интерфейс.

6.4. Краткие итоги

Платформа .NET Framework – это интегрированный компонент Windows, который поддерживает создание и выполнение нового поколения приложений и Веб-служб XML.

Среда CLR управляет памятью, выполнением потоков, выполнением кода, проверкой безопасности кода, компиляцией и другими системными службами.

Библиотека классов FCL (Framework Class Library) открывает доступ к системным функциям, включая и те, что прежде были доступны только через API Windows, а также к прикладным функциям для Веб-разработки ( ASP.NET ), для доступа к данным (ADO.NET), обеспечения безопасности и удаленного управления.

ASP.NET – это платформа для создания Веб-приложений и Веб-сервисов, работающих под управлением IIS.

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

На каждом этапе жизненного цикла страницы она вызывает события, которые могут быть использованы для управления выполнением собственного кода.

Отдельные серверные элементы управления ASP.NET обладают собственным жизненным циклом, сходным с жизненным циклом страницы.

Возврат информации серверу осуществляется с помощью механизма состояний просмотра (состояние вида, ViewState ).

Существует несколько способов сохранения состояния просмотра:

  • строка запроса в URL-адресе;
  • cookie;
  • состояние сеанса (Session).

Основной сложностью при разработке пользовательского интерфейса Веб-приложения является позиционирование его элементов.

Для создания пользовательского интерфейса Веб-приложения возможно использование как серверных, так и HTML элементов управления.

Одной из наиболее часто возникающих задач при создании Веб-приложения, является работа с текстом.

В ряде случаев необходимо принимать от пользователя булевые значения, для этих целей применяются элементы CheckBox, CheckBoxList, RadioButton и RadioButtonList.

ASP.NET предоставляет несколько возможностей отображения графики.

Элемент управления Literal представляет собой один из способов вывода информации на экран.

Элемент управления HiddenField целесообразно использовать в том случае, когда на странице необходимо сохранить какие-то данные, но не отображать их.

Элемент управления Panel используется для группирования элементов управления.

Элемент управления LinkButton представляет собой кнопку, которая выглядит как гиперссылка, но имеет поведение кнопки.

< Лекция 4 || Лекция 5: 123456 || Лекция 6 >
Зарина Каримова
Зарина Каримова
Казахстан, Алматы, Гимназия им. Ахмета Байтурсынова №139, 2008
Akiyev Begench
Akiyev Begench
Беларусь, Полоцк, полоцкий государственный университет