Система отображения страниц для мобильных устройств

Дата последнего изменения: 9 марта 2015 г.

Применимо к: SharePoint Foundation 2010

В этом разделе описывается Microsoft SharePoint Foundation порядок использования элементов управления выбором шаблона и элементов управления RenderingTemplate для отображения страниц, доступных с мобильных устройств.

Элементы управления на странице

Страницы для мобильных устройств отображаются с помощью элементов управления RenderingTemplate, которые, тем не менее, не вызываются напрямую со страницы. Вместо этого на странице объявляется элемент управления SPMobileComponent или тип элемента управления, производный от SPMobileComponent. Свойство TemplateName этого элемента управления задает идентификатор элемента RenderingTemplate. Шаблон отображения объявляется в ASCX-файле, который располагается в папке %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\CONTROLTEMPLATES. Если на странице объявлен объект производного от SPMobileComponent класса, то значение его свойства TemplateName определяется внутренним способом на базе текущего определения сайта, текущего типа страницы, а также области страницы (верхний, нижний колонтитул или контент), в которой объявлен этот элемент управления. Если объявлен фактический объект SPMobileComponent, свойство TemplateName устанавливается в объявлении.

Элементы RenderingTemplate, поставляемые вместе с SharePoint Foundation, объявляются в файлах MobileDefaultTemplates.ascx и GbwMobileDefaultTemplates.ascx. Настраиваемые элементы RenderingTemplate объявляются в настраиваемых ASCX-файлах в той же папке.

Ниже приведен пример основной разметки для страницы списка списков для мобильных устройств mbllists.aspx. Обратите внимание, что в некоторых местах, например, в разделе верхнего колонтитула страницы для устройств с поддержкой стилей CSS, объявлен элемент SPMobileComponent и явно задано его свойство TemplateName. Однако в других местах, например в верхнем колонтитуле страницы для устройств, не поддерживающих стили CSS, объявлен объект, производный от класса SPMobileComponent. В этом случае используется класс SPMobilePageTitle. На этой странице он вызывает шаблон отображения с идентификатором MobileHomePageTitle.

ПримечаниеПримечание

Тип страницы для мобильных устройств "HomePage" включает страницы, которые фактически не являются домашними страницами сайта. Этот тип включает страницы, которые сложно отнести к каким-либо другим категориям, например, к страницам представления списка или форм. Например, страница списка списков для мобильных устройств mbllist.aspx имеет тип HomePage.

<SPMobile:SPMobileForm RunAt="Server" PageType="HomePage" Paginate="true">
  <DeviceSpecific>
    <Choice Filter="supportsCss">
      <HeaderTemplate>
        <SPMobile:SPMobileComponent RunAt="Server"Templatename="MobilePageTitleWithCss" Weightless="true" />
      </HeaderTemplate>
      <FooterTemplate>
        <SPMobile:SPMobileComponent RunAt="Server" 
          Templatename="MobilePageNavigationWithCss" Weightless="true" />
      </FooterTemplate>
    </Choice>
    <Choice>
      <HeaderTemplate>
        <SPMobile:SPMobileControlContainer RunAt="Server" Weightless="true">
          <SPMobile:SPMobilePageTitle RunAt="Server" />
          <SPMobile:SPMobileComponent RunAt="Server" 
            TemplateName="MobileDefaultSeparator" />
        </SPMobile:SPMobileControlContainer>
      </HeaderTemplate>
      <FooterTemplate>
        <SPMobile:SPMobileControlContainer RunAt="Server" Weightless="true">
          <SPMobile:SPMobileComponent RunAt="Server" 
            Templatename="MobilePaginateNavigation" />
          <SPMobile:SPMobileComponent RunAt="Server" 
            TemplateName="MobileDefaultSeparator" />
          <SPMobile:SPMobilePageNavigation RunAt="Server" />
        </SPMobile:SPMobileControlContainer>
      </FooterTemplate>
    </Choice>
  </DeviceSpecific>
  <SPMobile:SPMobilePageContents RunAt="Server" />
</SPMobile:SPMobileForm>

В ASCX-файле

Каждый элемент RenderingTemplate, вызываемый элементами управления на странице, содержит элемент Template. Содержимое элемента Template обычно соответствует одному из следующих шаблонов:

Прямые вызовы ASP.NETвеб-элементов управления

В простейшем случае веб-элементы управления Microsoft ASP.NET и SharePoint Foundation, которые требуется вставить на страницу для мобильных устройств, вызываются напрямую в элементе Template. Например, элемент MobileDefaultSeparator RenderingTemplate вызывается из областей верхнего и нижнего колонтитула ряда страниц для мобильных устройств SharePoint Foundation. Это определяется в файле MobileDefaultTemplates.ascx с помощью следующей разметки:

<SharePoint:RenderingTemplate RunAt="Server" id="MobileDefaultSeparator">
  <Template>
    <mobile:Panel RunAt="Server" Alignment="Center" EnableViewState="False">
      <mobile:DeviceSpecific RunAt="Server">
        <Choice Filter="IsMicrosoftMobileExplorer">
          <ContentTemplate>
            <hr width="100%" size="1">
          </ContentTemplate>
        </Choice>
        <Choice Filter="IsHtml32">
          <ContentTemplate>
            <hr width="100%" size="1" color="#D8D8D8">
          </ContentTemplate>
        </Choice>
        <Choice Filter="IsChtml10">
          <ContentTemplate>
            <hr width="100%" size="1">
          </ContentTemplate>
        </Choice>
        <Choice Filter="IsXhtmlMp">
          <ContentTemplate>
            <hr width="100%" size="1" style="color:#D8D8D8" />
          </ContentTemplate>
        </Choice>
        <Choice>
          <ContentTemplate>
            <mobile:LiteralText RunAt="Server" Text="-----" BreakAfter="true" />
          </ContentTemplate>
        </Choice>
      </mobile:DeviceSpecific>
    </mobile:Panel>
  </Template>
</SharePoint:RenderingTemplate>

Обратите внимание, что в этой разметке объявляется элемент управления ASP.NET Panel, а затем задается его стиль в соответствии с языком разметки, который используется браузером мобильного устройства. Если браузер не соответствует какому-либо конкретному типу, для отображения по умолчанию создается разделитель с пятью дефисами в элементе управления LiteralText.

В следующем коде показано объявление элемента RenderingTemplate. Обратите внимание, что в нем вызывается объект SPMobileLabel.

<SharePoint:RenderingTemplate RunAt="Server" id="MobileFormFieldSeparator">
  <Template>
    <SPMobile:SPMobileLabel RunAt="Server" Text="" BreakAfter="true" />
  </Template>
</SharePoint:RenderingTemplate>

Вызовы объекта SPMobileComponent

Как отмечено в предыдущем разделе Элементы управления на странице, элементы SPMobileComponent, а также элементы управления, производные от SPMobileComponent, используются на странице для мобильных устройств SharePoint Foundation для вызова шаблонов отображения. Поэтому не удивительно, что элементTemplate элемента RenderingTemplate включает вызов одного из этих объектов. Это происходит тогда, когда часть контента, которую требуется отображать с помощью элемента RenderingTemplate, в точности повторяет (косвенно) уже отображаемый одним из объектов SPMobileComponent. Например, элемент MobilePageNavigationWithCss RenderingTemplate определен в файле MobileDefaultTemplates.ascx частично с вызовом производного от SPMobileComponent класса SPMobilePageNavigation и частично с вызовом объекта SPMobileComponent, свойству TemplateName которого присвоено значение MobilePaginateNavigation. В следующем примере кода показано объявление:

<SharePoint:RenderingTemplate RunAt="Server" 
  id="MobilePageNavigationWithCss">
  <Template>
    <SPMobile:SPMobileComponent RunAt="Server" 
      Templatename="MobilePaginateNavigation" />
    <SPMobile:SPMobileNoBreakSpace RunAt="Server" />
    <SPMobile:SPMobilePaddedPanel RunAt="Server" BackColor="#F6F6F6">
      <SPMobile:SPMobilePageNavigation RunAt="Server" />
    </SPMobile:SPMobilePaddedPanel>
  </Template>
</SharePoint:RenderingTemplate>

Вызов объекта выбора шаблона

В некоторых случаях контент элемента Template может представлять собой объект класса, производного от SPMobileTemplateSelector. Существует девять таких классов:

Как следует из имени родительского класса, эти элементы управления используются для выбора другого элемента RenderingTemplate, который будет фактически отображаться на странице. Например, для элемента MobileHomePageTitle RenderingTemplate, который рассматривается в разделе Элементы управления на странице, установлено SPMobileWebTitle в качестве значения элемента Template. Объект SPMobileWebTitle вызывает объект RenderingTemplate, который отображает область верхнего колонтитула (заголовка) домашней страницы для мобильных устройств. Ниже приведено объявление шаблона отображения MobileHomePageTitle в файле MobileDefaultTemplates.ascx.

<SharePoint:RenderingTemplate RunAt="Server" id="MobileHomePageTitle">
  <Template>
    <SPMobile:SPMobileWebTitle RunAt="Server" />
  </Template>
</SharePoint:RenderingTemplate>

Каждый объект SPMobileTemplateSelector выбирает элемент RenderingTemplate посредством построения сегментированного идентификатора. Среда выполнения просматривает ASCX-файлы в папке %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\CONTROLTEMPLATES в поиске элемента RenderingTemplate с соответствующим идентификатором. Дополнительные сведения о сегментированных идентификаторах для элементов RenderingTemplate см. в разделе Сегментированные идентификаторы шаблонов отображения ниже в этом разделе. Дополнительные сведения о построении идентификаторов см. в разделах справки, посвященных описанным выше девяти классам, а также в разделах Отображение разделов на домашней странице для мобильных устройств и Отображение разделов на страницах представления списка и форм далее в этой статье.

Смешанные вызовы

Элемент Template элемента RenderingTemplate также может содержать смешанные вызовы различных видов элементов управления:

Любая последовательность вызовов, использующая объекты SPMobileTemplateSelector, производные от SPMobileComponent объекты, а также объекты SPMobileComponent с явно установленным значением TemplateName, должна в конечном итоге разрешаться в вызовы элементов управления, которые синтаксический анализатор страницы может отображать на языке описания страниц мобильного устройства, например, XHTML.

Сегментированные идентификаторы шаблонов отображения

Многие элементы RenderingTemplate в MobileDefaultTemplates.ascx и GbwMobileDefaultTemplates.ascx имеют сегментированные идентификаторы. Их можно разделить на следующие категории:

  • Переменные шаблоны отображения типа сайта

  • Переменные шаблоны отображения типа списка

  • Переменные шаблоны отображения типа поля

  • Шаблоны отображения элемента списка в простом представлении

  • Шаблоны "отображения" перенаправления

  • Шаблоны отображения списка записей блога

Переменные шаблоны отображения типа сайта

Элементы RenderingTemplate, поведение отображения которых изменяется в соответствии с определением сайта, имеют сегментированные идентификаторы в следующем формате:

предполагаемое_предназначение_страницы_идентификатор_типа_сайта_тип_страницы_область_страницы

Возможные значения элемента область_страницы: Title (область верхнего колонтитула страницы для мобильных устройств), Navigation (область нижнего колонтитула) и Contents.

Параметр идентификатор_типа_сайта определяет имя или идентификатор определения сайта для текущего веб-сайта. Для определений сайтов, поставляемых вместе с SharePoint Foundation, параметр идентификатор_типа_сайта может иметь значения STS, SGS или BLOG.

ПримечаниеПримечание

Доступ с мобильных устройств к сайтам типа MPS, CENTRALADMIN, TENANTADMIN и устаревшим WIKI-сайтам не поддерживается.

Для определений пользовательских сайтов идентификатор_типа_сайта указывает идентификатор (не имя) определения сайта. Идентификатор определения сайта устанавливается с помощью атрибута ID элемента Template в файле WebTemp.xml. Дополнительные сведения об использовании атрибута ID в определении сайта см. в описании файла WebTemp.xml.

Параметры тип_страницы и предполагаемое_предназначение_страницы ссылаются на виды мобильных страниц, однако они обеспечивают классификацию страниц для мобильных устройств по различным направлениям. Параметр тип_страницы относится к функциональному предназначению страницы с точки зрения конечного пользователя, например, домашняя страница, страница представления списка или форма редактирования. К возможным значениям относятся все значения перечисления SPMobilePageType. Параметр предполагаемое_предназначение_страницы классифицирует страницу для мобильных устройств по виду соответствующей ей обычной страницы, то есть по предполагаемому типу целевой страницы. Возможны следующие значения:

  • WebPartMobile — шаблоны предназначены для использования на сводных мобильных версиях обычных страниц веб-частей.

  • WebPartMobileDetail — шаблоны предназначены для использования на подробных мобильных версиях обычных веб-частей.

  • Moblog — шаблоны, предназначенные для использования на страницах сайта блога для мобильных устройств.

  • Mobile — все прочие страницы для мобильных устройств.

Ниже приведены примеры:

  • Mobile_STS_HomePage_Title

  • WebPartMobile_SGS_HomePage_Contents

Переменные шаблоны отображения типа списка

Элементы RenderingTemplate, поведение отображения которых изменяется в соответствии с определением списка, имеют сегментированные идентификаторы с именами в следующем формате:

предполагаемое_предназначение_списка_идентификатор_типа_списка_тип_страницы_область_страницы

Параметры тип_страницы и область_страницы имеют то же значение, что и описанные в предыдущем подразделе параметры. Параметр идентификатор_типа_списка представляет собой идентификатор типа текущего списка (например, 105) или одно из значений перечисления SPListTemplateType (например, Contacts). Если список определен как часть типа сайта в файле Onet.xml определения сайта, параметр идентификатор_типа_списка имеет значение атрибута Type элемента List в файле Onet.xml, который располагается в следующем каталоге: %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates\тип_сайта\xml. Если список был добавлен на сайт с помощью пользовательского интерфейса, то параметр идентификатор_типа_списка определяет идентификатор типа списка, который использовался в качестве базы для нового типа списка.

Параметр предполагаемое_предназначение_списка определяет особый вид списка (если таковой есть), для отображения которого предназначен шаблон. Возможны следующие значения:

  • Mobile — обычные типы списка.

  • MobileFolder — шаблоны, предназначенные для отображения элементов во вложенных папках списка.

  • MobileDailyView — шаблоны, предназначенные для отображения ежедневного списка событий из календаря сайта групповой работы.

Ниже приведены примеры:

  • Mobile_Events_NewForm_Navigation

  • Mobile_425_EditForm_Contents

Переменные шаблоны отображения типа поля

Шаблоны отображения поля, поведение отображения которых изменяется в соответствии с видом поля, имеют сегментированные идентификаторы в следующем формате:

MobileCustomListField_идентификатор_типа_списка_тип_поля_поле

Параметр идентификатор_типа_списка имеет то же значение, что и в предыдущем подразделе. Параметр тип_поля определяет тип данных поля. Он может иметь любые значения перечисления SPFieldType, например, Text или Number. Кроме того, он может определять настраиваемый тип поля, который определяется в элементе <Field Name="TypeName"> в соответствующем файле fldtypes*.xml. (Дополнительные сведения о настраиваемых типах полей см. в статье Практическое руководство. Создание определения настраиваемого типа поля). Параметр поле определяет внутреннее имя поля, например, WorkPhone. Если поле задано как часть списка в файле Schema.xml для определения списка, то в качестве внутреннего имени используется значение атрибута Name элемента Field в файле schema.xml, который располагается в каталоге %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\каталог_компонента. Если поле было добавлено в список с помощь пользовательского интерфейса, то есть с помощью страницы Создать столбец, то параметр поле имеет значение свойства SPField.InternalName и может быть определен только в объектной модели.

ПримечаниеПримечание

Параметр поле определяет внутреннее имя поля (столбца), которое не обязательно совпадает с отображаемым именем поля. Внутреннее имя полей, создаваемых с помощью пользовательского интерфейса, создается автоматически на основании отображаемого имени, выбранного пользователем. Если отображаемое имя содержит пробелы или знаки пунктуации, во внутреннем имени они заменяются числовыми значениями Юникод, выделенными знаками подчеркивания. Например, пользовательскому имени "Coming Soon" соответствует внутреннее имя "Coming_x0020_Soon".

Ниже приведены примеры:

  • MobileCustomListField_Posts_DateTime_PublishedDate

  • MobileCustomListField_Whereabouts_User_Name

Шаблоны отображения элемента списка в простом представлении

Элементы списка могут отображаться как в подробном, так и в простом (иногда называется "сводным") представлении для мобильных устройств. Для отображения элементов списка в простом представлении используется ряд сегментированных идентификаторов, имеющих следующий формат:

Mobile_идентификатор_типа_списка_SimpleViewItemRendering

Параметр идентификатор_типа_списка имеет то же значение, что и в предыдущих подразделах.

Шаблоны отображения списка записей блога

Элемент SPMobilePostsListTitle используется для выбора элементов Moblog_MyPosts_Title или Moblog_AllPosts_Title, предназначенных для отображения списка записей на сайтах блога для мобильных устройств на основании текущего типа представления на сайте блога (MyPosts или AllPosts).

Шаблоны "отображения" перенаправления

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

Mobile_идентификатор_типа_сайта_тип_страницы_Redirect

Параметры идентификатор_типа_сайта и тип_страницы имеют то же значение, что и в подразделе "Переменные шаблоны отображения типа сайта". Шаблон отображения этого типа вызывает объект SPMobileHomePageRedirection, который перенаправляет запрос с мобильного устройства на страницу, заданную свойством PageFileName. По умолчанию задается страница mblwp.aspx. Ниже показано объявление шаблона отображения, который осуществляет перенаправление на домашнюю страницу сайта блога.

<SharePoint:RenderingTemplate RunAt="Server" 
  id="Mobile_BLOG_HomePage_Redirect">
  <Template>
    <SPMobile:SPMobileHomePageRedirection RunAt="Server" 
      PageFileName="bloghome.aspx" />
  </Template>
</SharePoint:RenderingTemplate>

Отображение разделов на домашней странице для мобильных устройств

Как было отмечено ранее, для объекта "MobileHomePageTitle" установлено SPMobileWebTitle в качестве значения элемента Template. Объект SPMobileWebTitle вызывает объект RenderingTemplate, который отображает область верхнего колонтитула (заголовка) домашней страницы для мобильных устройств. В частности, он осуществляет поиск объекта RenderingTemplate с идентификатором Mobile_идентификатор_типа_сайта_HomePage_Title, где параметр идентификатор_типа_сайта определяет имя или идентификатор определения сайта для текущего веб-сайта.

Если элемент RenderingTemplate для конкретного определения текущего сайта не существует ни в одном из ASCX-файлов в каталоге %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\CONTROLTEMPLATES, системой отображения используется элемент Mobile_Default_HomePage_Title. Этот элемент, в свою очередь, используется для вызова элемента SPMobileWeb, который отображает заголовок веб-сайта, содержащий элемент управления Label. Дополнительные сведения о работе с элементами управления RenderingTemplate для домашних страниц, поставляемыми с SharePoint Foundation, см. в разделе Практическое руководство. Настройка домашней страницы для мобильных устройств.

Параметры SPMobileWebContents и SPMobileWebNavigation используются для выбора элементов RenderingTemplate, которые предназначены соответственно для отображения области контента главной страницы и нижнего колонтитула (область навигации) домашней страницы для мобильных устройств. Таким образом, первые три класса выбора предназначены для поиска элементов RenderingTemplate с идентификаторами, соответствующими шаблону Mobile_идентификатор_типа_сайта_HomePage_область_страницы.

Отображение разделов на страницах представления списка и форм

Классы SPMobileListTitle, SPMobileListContents и SPMobileListNavigation используются в страницах представления списка и форм. Все они осуществляют поиск элементов RenderingTemplate с идентификаторами, соответствующими шаблону Mobile_идентификатор_типа_списка_тип_страницы_область_страницы, где параметр тип_страницы имеет значение View, NewForm, EditForm, DispForm или DeletePage, а параметр идентификатор_типа_списка определяется в разделе Сегментированные идентификаторы шаблонов отображения этой статьи.

Большинство встроенных типов списков SharePoint Foundation представлены значениями перечисления SPListTemplateType. В разделе справки по этому типу перечислены базовые целочисленные значения для каждого типа SPListTemplateType. Эти целые значения намеренно выбраны в соответствии с числовыми идентификаторами типа списка. Поэтому соответствующий раздел справки представляет собой полезный каталог идентификаторов списков.

Некоторые типы списков не имеют соответствующего значения в перечислении. Эти типы и их идентификаторы перечислены в следующей таблице. Также можно использовать идентификаторы настраиваемых типов списков, которым следует присваивать номера больше 10000 (это позволяет избежать конфликтов с номерами, которые могут использоваться в последующих версиях Microsoft SharePoint Foundation. Кроме того, обратите внимание, что продукты Майкрософт, построенные на базе SharePoint Foundation, например, Microsoft SharePoint Server, могут содержать и содержат дополнительные типы списков.

Идентификатор

Описание

151

Библиотека справки

400

Расписание

401

Группы FC

425

Новые возможности

1210

Списки рассылки

Если не существует элемент RenderingTemplate с идентификатором, определяющим текущий тип списка, используется элемент RenderingTemplate с идентификатором, соответствующим шаблону Mobile_Default_тип_страницы_раздел_страницы. Дополнительные сведения об элементах RenderingTemplate для отображения списков, поставляемых вместе с SharePoint Foundation, см. в разделе Практическое руководство. Настройка представления списка и страниц формы для мобильных устройств.

Отображение полей

Элемент SPMobileListFieldSelector используется для выбора элементов RenderingTemplate, предназначенных для отображения полей на страницах представления списка, создания, правки и отображения. В этом случае выполняется поиск элемента RenderingTemplate с идентификатором, соответствующим шаблону MobileCustomListField_идентификатор_типа_списка_тип_поля_поле, который определен в разделе Сегментированные идентификаторы шаблонов отображения этой статьи.

Если не существует элемент RenderingTemplate с искомым идентификатором, используется элемент RenderingTemplate с идентификатором MobileDefaultListField. Дополнительные сведения об элементах RenderingTemplate для отображения полей, поставляемых вместе с SharePoint Foundation, см. в статье Настройка отображения поля на страницах для мобильных устройств.

Различия в отображении полей на компьютерах и мобильных устройствах

В SharePoint Foundation визуализация поля с настраиваемыми элементами управления визуализацией для мобильных устройств подобна соответствующей операции для компьютеров. Однако следует помнить о следующих различиях:

Вложенные шаблоны отображения

Поддерживается использование вложенных элементов RenderingTemplate. См. пример в статье Практическое руководство. Настройка домашней страницы для мобильных устройств.

См. также

Задачи

Настройка домашней страницы для мобильных устройств

Практическое руководство. Настройка представления списка и страниц формы для мобильных устройств

Настройка страницы представления списка для мобильных устройств

Практическое руководство. Настройка домашней страницы для мобильных устройств

Пошаговое руководство. Настройка заголовков элементов в мобильных формах

Настройка отображения поля на страницах для мобильных устройств

Концепции

Общие сведения о страницах для мобильных устройств и механизме перенаправления

Макет и разбивка страниц для мобильных устройство

Эллипсы и ограничения отображения

Практическое руководство. Создание определения настраиваемого типа поля

Общие сведения о файлах Schema.xml

Общие сведения о файлах Onet.xml