Практическое руководство. Настройка представления списка и страниц формы для мобильных устройств
Дата последнего изменения: 2 февраля 2011 г.
Применимо к: SharePoint Foundation 2010
В этом разделе приводится обзор базовой процедуры настройки представления списка Microsoft SharePoint Foundation и страниц формы, доступных для мобильных устройств. Подробное изложение процедуры см. в разделе Настройка страницы представления списка для мобильных устройств. Обзор настройки домашних страниц для мобильных устройств см. в разделе Практическое руководство. Настройка домашней страницы для мобильных устройств.
Как подробно описывается в разделе Система отображения страниц для мобильных устройств, элементы управления в областях Header (Title), Body (Contents) и Footer (Navigation) страницы представления списка или формы элемента списка для мобильных устройств начинают цепочку вызовов, которая завершается вызовом объекта RenderingTemplate, который отображает соответствующую область страницы для мобильных устройств. Это практически всегда RenderingTemplate с сегментированным идентификатором. Если объект RenderingTemplate с совпадающим именем не найден, используется шаблон по умолчанию. Это значит, что области Header, Body и Footer можно настроить, создав объект RenderingTemplate с идентификатором, который будет искать среда выполнения.
А именно, среда выполнения ищет идентификатор RenderingTemplate, который имеет следующий формат:
IntendedListUse_ListTypeID_PageType_PageArea
Заполнители IntendedPageUse, ListTypeID, PageType и PageArea определяются в разделе Сегментированные идентификаторы шаблонов отображения. На странице представления списка или форме элемента возможными значениями для PageType являются DispForm, NewForm, EditForm и DeletePage.
Дополнительные сведения о разделах страницы для мобильных устройств см. в разделе Макет и разбивка страниц для мобильных устройство.
Если объект RenderingTemplate с совпадающим именем не найден, то для определенных заполнителей IntendedPageUse, ListTypeID, PageType и PageArea используется заполнитель "Default" вместо ListTypeID:
IntendedPageUse_Default_PageType_PageArea
Например, если среда выполнения ищет объект RenderingTemplate с идентификатором Mobile_Announcements_View_Contents, она его не найдет (если не был добавлен пользовательский шаблон с таким именем). Поэтому она будет использовать Mobile_Default_View_Contents, который существует, для отображения области Body (Contents) страницы представления списка для списка "Объявления".
Поэтому, если необходимо настроить отображение области Body (Contents) этого представления списка, можно создать элемент RenderingTemplate с идентификатором Mobile_Announcements_View_Contents (или Mobile_104_View_Contents) в ASCX-файле, который развертывается в папке %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates. Изменять файлы MobileDefaultTemplates.ascx или GbwMobileDefaultTemplates.ascx нельзя. Дополнительные сведения о создании пользовательских шаблонов отображения для страницы представления списка или формы см. в описании процедуры в следующем разделе, а также в разделе Настройка страницы представления списка для мобильных устройств.
Существующие шаблоны визуализации
Десятки объектов RenderingTemplate для страниц представлений списков и форм для мобильных устройств включены в файлы MobileDefaultTemplates.ascx или GwbMobileDefaultTemplates.ascx, которые устанавливаются вместе с SharePoint Foundation. Ниже приведены некоторые примеры.
Mobile_Events_DispForm_Navigation
Mobile_Comments_View_Navigation
Mobile_Posts_DeletePage_Navigation
Mobile_425_View_Navigation
MobileFolder_DocumentLibrary_View_Navigation
MobileDailyView_Events_View_Navigation
Изменять файлы MobileDefaultTemplates.ascx или GwbMobileDefaultTemplates.ascx нельзя. Можно создать новый объект RenderingTemplate (в собственном ASCX-файле) с таким же идентификатором, что и у одного из существующих шаблонов отображения, но в этом случае возникает риск повреждения других решений, развернутых в SharePoint Foundation, которые зависят от исходного объекта RenderingTemplate с таким же идентификатором.
Примечание |
---|
Элементы RenderingTemplate, входящие в состав SharePoint Foundation, загружаются до загрузки пользовательских шаблонов, поэтому при загрузке пользовательского шаблона с таким же именем, что и у одного из существующих шаблонов отображения, пользовательский шаблон переопределяет исходный. Если два или более пользовательских объекта RenderingTemplate имеют одно имя, объект, имя файла которого располагается последним при упорядочении по алфавиту, переопределяет все остальные. Если в заданном файле имеется более двух шаблонов отображения с одинаковым именем, ни один из них не будет загружен. |
Кроме того, следующие элементы RenderingTemplate по умолчанию определяются в том же файле. Они используются в среде выполнения, когда для текущего типа списка не определен объект RenderingTemplate. Такой же риск возникает при создании нового объекта RenderingTemplate с любым из следующих имен:
Mobile_Default_DeletePage_Contents
Mobile_Default_DeletePage_Navigation
Mobile_Default_DeletePage_Title
Mobile_Default_DispForm_Contents
Mobile_Default_DispForm_Navigation
Mobile_Default_DispForm_Title
Mobile_Default_EditForm_Contents
Mobile_Default_EditForm_Navigation
Mobile_Default_EditForm_Title
Mobile_Default_NewForm_Contents
Mobile_Default_NewForm_Navigation
Mobile_Default_NewForm_Title
Mobile_Default_View_Contents
Mobile_Default_View_Navigation
Mobile_Default_View_Title
MobileDailyView_Default_View_Navigation
MobileFolder_Default_View_Title
MobileFolder_Default_View_Navigation
Объекты RenderingTemplate можно вкладывать. См. следующий пример.
Настройка фрагмента представления списка или страницы формы для мобильных устройств
В Microsoft Visual Studio создайте Пустой проект SharePoint. Выберите фермы, а не для песочницы.
Добавьте сопоставленную папку SharePoint в папку TEMPLATE\ControlTemplates.
Щелкните правой кнопкой мыши новую папку и добавьте Пользовательский элемент управления SharePoint. Присвойте ASCX-файлу имя, которое позволит его отличить от файлов других поставщиков решений, например ContosoMobileRenderingTemplates.ascx. Visual Studio автоматически добавит файл в манифест решения SharePoint и настроит его на развертывание в папку %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates.
Совет Не добавляйте Пользовательский элемент управления щелчком правой кнопкой мыши по проекту в обозревателе решений. При добавлении пользовательского элемента управления таким образом Visual Studio помещает его во вложенную папку папки TEMPLATE\ControlTemplates и, если элемент управления не переместить, Visual Studio развертывает его в соответствующую вложенную папку %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates. Шаблоны отображения для мобильных устройств, находящиеся во вложенных папках, не загружаются.
Удалите файлы .ascx.cs и .ascx.designer.cs (либо .ascx.vb и .ascx.designer.vb). Эти файлы для данного проекта не требуются.
Замените весь раздел директив в ASCX-файле на следующую разметку:
<%@ Register TagPrefix="GroupBoardMobile" Namespace="Microsoft.SharePoint.Applications.GroupBoard.MobileControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Control Language="C#" %> <%@ Assembly Name="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %> <%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register TagPrefix="SPMobile" Namespace="Microsoft.SharePoint.MobileControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register TagPrefix="WPMobile" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
Добавьте шаблон отображения в ASCX-файл и присвойте ему идентификатор в следующем формате: IntendedListUse_ListTypeIDPageType_PageArea.
предполагаемое_использование может иметь значения Mobile, MobileFolder или MobileDailyView.
ListTypeID — либо число-идентификатор типа текущего списка (например, 105), либо одно из значений перечисления SPListTemplateType (например, Contacts).
PageType может принимать значение View, NewForm, EditForm, DispForm или DeletePage.
Для PageArea можно использовать значения Title, Contents или Navigation.
В меню "Построение" выберите команду Развернуть решение. При этом ASCX-файл будет автоматически сохранен и развернут в папку %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates, а веб-приложение — перезапущено, в результате чего все ASCX-файлы в этой папке будут перезагружены.
Пример
В следующем примере определения RenderingTemplate показан способ вложения объектов RenderingTemplate. В примере показан пользовательский объект RenderingTemplate для нижнего колонтитула страницы представления списка с типом списка 104 (Объявления). Подробный пример настройки страницы представления списка см. в разделе Настройка страницы представления списка для мобильных устройств.
<SharePoint:RenderingTemplate RunAt="Server" ID="Mobile_104_View_Navigation">
<Template>
<mobile:Link RunAt="Server"
Text="ASP.NET Website" href="https://www.asp.net/" />
<mobile:Label RunAt="Server" Text="" BreakAfter="True" />
<SPMobile:SPMobileComponent RunAt="Server"
TemplateName="Mobile_Default_View_Navigation" />
</Template>
</SharePoint:RenderingTemplate>
См. также
Задачи
Настройка страницы представления списка для мобильных устройств
Практическое руководство. Настройка домашней страницы для мобильных устройств