Архитектура мобильных элементов управления ASP.NET

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

Все мобильные элементы управления наследуются от класса MobileControl.

Мобильные формы наследуются от MobilePage.l

Мобильная ASP-страница указывается следующим образом:

<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage"

                   Language="c#" %>

Мобильные ASP-страницы могут отображаться на довольно широком спектре мобильных устройств (смартфоны, КПК). Поэтому и разметка, и структура приложения, должны "настраиваться" на конкретный тип мобильного устройства. Эту настройку автоматически выполняют мобильные элементы управления ASP.NET, используя так называемый адаптивный рендеринг. Так, мобильные элементы управления поддерживают несколько языков разметки (Compact HTML 1.0,HTML 3.2, WML 1.x, XHTML и др.).

Все мобильные элементы управления можно разделить на пять групп:

§  контейнеры

§  текст

§  условия проверки

§  списки

§  разные элементы.

Базовым классом всех мобильных ASP-страниц является класс MobilePage.

Разбивка на части отображаемой мобильной страницы выполняется автоматически. Для того чтобы элементы формы также можно было автоматически разбивать на отдельно отображаемые страницы (в соответствии с возможностями экрана мобильного устройства) свойство Paginate объекта типа Form должно быть равным true.

 

Пространство имен System.Web.UI.MobileControls содержит следующий набор серверных элементов управления ASP.NET для мобильных устройств:

§  AdRotator – позволяет произвольным образом менять отображаемые рекламные баннеры;

§  ArrayListCollectionBase – реализует функциональность, определяемую интерфейсом ICollection, используя для хранения объект ArrayList;

§  BaseValidator – абстрактный класс, определяющий реализацию для всех "проверяющих" элементов управления;

§  Calendar – реализует элемент управления, предоставляющий функциональность календаря;

§  Command – создает элемент пользовательского интерфейса (командная  кнопка), позволяющий использовать обработчик событий, а также выполнять передачу формы на сервер;
Например:

<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage"

    Language="c#" %>

<%@ Register TagPrefix="mobile"

                                  Namespace="System.Web.UI.MobileControls"

                                 Assembly="System.Web.Mobile" %>

<script Language="c#" runat=server>

void Command_Click(object sender, CommandEventArgs e)

{  if (e.CommandName.ToString()=="Command1")

    { Label1.Text = "Выполнен щелчок по Button1.";    }

    else if (e.CommandName.ToString()=="Command2")

            { Label1.Text = " Выполнен щелчок по Button2.";    } 

}

</script>

<mobile:Form id="myForm" runat=server>

  <mobile:Label id="Label1" runat=server>   Щелкни на кнопке

  </mobile:label>

  <mobile:Label id="Label2" runat=server></mobile:label>

             // Событие OnItemCommand инициируется при

            // активизации элемента управления

  <mobile:Command id="Command1"

                                               OnItemCommand="Command_Click"

           CommandName="Command1" runat="server" Text="Button1" />

  <mobile:Command id="Command2"

                                              OnItemCommand="Command_Click"

          CommandName="Command2" runat="server" Text="Button2" />

</mobile:Form>

 

§  CompareValidator – выполняет проверку на базе сравнения двух полей;
Например:

<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage"

                                                                            Language="c#" %>

 <%@ Register TagPrefix="mobile"

                                    Namespace="System.Web.UI.MobileControls"

                                   Assembly="System.Web.Mobile" %>

 <script Language="c#" runat=server>

 public void Page_Load(Object sender, EventArgs e)

 { CompareValidator1.ErrorMessage = "Значения различны";

    CompareValidator1.ControlToCompare = "TextBox1";

    CompareValidator1.ControlToValidate = "TextBox2";

 }

 </script>

 <mobile:Form id="Form1" runat=server>

    <mobile:Label id="Label1" runat=server>Введите значения

       </mobile:label>

    <mobile:TextBox id="TextBox1" runat="server" Text="abc" />

    <mobile:TextBox id="TextBox2" runat="server" Text="xyz" />

    <mobile:Command id="Command1" runat="server" Text="Ok" />

    <mobile:CompareValidator id="CompareValidator1" runat="server" />

 </mobile:Form>

§  Constants – создает элемент пользовательского интерфейса, позволяющий использовать обработчик событий и выполнять передачу введенного значения на сервер;

§  ControlElement – представляет секцию Control в секции MobileControls конфигурационного файла;

§  ControlElementCollection – представляет XML элемент, содержащий набор секций Control в секции MobileControls конфигурационного файла;

§  ControlPager – используется формой для разбиения на страницы своих элементов управления;

§  CustomValidator – позволяет настроить проверку для другого элемента управления;

§  DesignerAdapterAttribute – предоставляет ссылку на тип адаптера, используемого в дизайнере;

§  DeviceElement – связывает определенный адаптер с определенным мобильным элементом управления для данного устройства;

§  DeviceElementCollection – набор объектов DeviceElement;

§  DeviceOverridableAttribute – определяет, может ли отображение мобильного элемента управления быть перекрыто;

§  DeviceSpecific – предоставляет выполнить выбор среди альтернативных контентов, позволяя адаптировать внешний вид элементов управления Form и Panel к конкретному устройству;

§  DeviceSpecificChoice – реализует простой выбор в DeviceSpecific;

§  DeviceSpecificChoiceCollection – содержит набор альтернатив для DeviceSpecific;

§  DeviceSpecificChoiceControlBuilder – реализует пользовательский формат для DeviceSpecificChoice;

§  DeviceSpecificChoiceTemplateBuilder – поддерживает разбор страницы и позволяет получать информацию о дочерних элементах управления;

§  DeviceSpecificChoiceTemplateContainer – содержит шаблоны, используемые классом DeviceSpecificChoice;

§  DeviceSpecificControlBuilder – поддерживает разбор для DeviceSpecific/Choice;

§  ErrorFormatterPage – определяет встроеннуюстраницу для отображения сообщений об ошибках;

§  FontInfo – позволяет получать информацию о шрифте элемента управления;

§  Form – элемент управления форма: позволяет объединять элементы управления в одну форму;

§  FormControlBuilder – поддерживает разбор элементов управления Form;

§  Image – позволяет отображать графические данные;

§  ItemPager – используется для доступа к разбитой на страницы форме;

§  Label – реализует элемент управления "метка" для стстического отображения текста;

§  Link – реализует гиперссылку;
Например:

<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage"

                                                                          Language="c#" %>

<%@ Register TagPrefix="mobile"

                                Namespace="System.Web.UI.MobileControls"

                                Assembly="System.Web.Mobile" %>

<script language="c#" runat="server">

Link Link1 = new Link();

public void Page_Load()

{  // Программное добавление ссылки (объекта типа Link)

  //  и определение свойств ссылки

    Link1.Text = "СайтMicrosoft";

    Link1.NavigateUrl = "http://www.microsoft.com";

    Link1.Alignment = Alignment.Left;

    // Добавление ссыли в форму как дочернего элемента управления

    Form1.Controls.Add(Link1);

}

</script>

<mobile:Form id="Form1" runat="server" />

§  List – позволяет отображать список элементов;
Например:

<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage"

                                                                         Language="c#" %>

 <%@ Register TagPrefix="mobile"

                                       Namespace="System.Web.UI.MobileControls"

                                      Assembly="System.Web.Mobile" %>

 <script Language="c#" runat="server">

 class ForList

 {

    private String _Name, _Status;

    public ForList (String Name, String Status)

    {  _Name = Name;   _Status = Status;    }  

    public String Name { get { return _Name; } }

    public String Status { get { return _Status; } }

 }

 public void Page_Load(Object sender, EventArgs e)

 { if (!IsPostBack)

    {  List1.DataValueField = "Status";

       List1.DataTextField = "Name";

       ArrayList arr = new ArrayList();     // Создание коллекции

       arr.Add (new ForList ("Строка1", "100"));

       arr.Add (new ForList ("Строка2", "200"));

       arr.Add (new ForList ("Строка 3", "300"));

       List1.DataSource = arr;   // Свойство определяет источник данных

       List1.DataBind();      // Связывание элемента управления с

                                         // источником данных

    }

 }

 void ShowItem(Object sender, ListCommandEventArgs e)

 { Label1.Text = e.ListItem.Text + " is " + e.ListItem.Value; }

 </script>

<mobile:Form runat="server" id="Form1" >

<mobile:List runat="server" id="List1" OnItemCommand="ShowItem" />

<mobile:Label runat="server" id="Label1" ForeColor=green

                                                                                   Font-Italic=true />

</mobile:Form>

ListCommandEventArgs – предоставляет данные для события ItemCommand объекта типа List;

MobileControl –  базовый класс всех мобильных элементов управления;

MobilePage – базовый класс всех мобильных Web-страниц;

ObjectList – позволяет отображать списки, использующие более двух полей, в виде таблицы;

Panel – реализует контейнер для размещения других элементов управления;

PhoneCall – позволяет выполнять звонок по телефонному номеру;

TextBox – реализует элемент управления текстовое поле;

 

Следующий код демонстрирует простейшую мобильную ASP-страницу:

<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage"                   Language="c#"  %>

<%@ Register TagPrefix="mobile"

    Namespace="System.Web.UI.MobileControls"

    Assembly="System.Web.Mobile" %>

<mobile:Form runat="server">

   <mobile:Label runat="server">  Отображаемый текст  </mobile:Label>

</mobile:Form>

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100