Настройка отображения поля на страницах для мобильных устройств
Дата последнего изменения: 2 февраля 2011 г.
Применимо к: SharePoint Foundation 2010
В этом разделе представлен обзор базовой процедуры по настройке отображения полей на страницах Microsoft SharePoint Foundation, доступных для мобильных устройств. Подробные пошаговые руководства по этой процедуре см. в статьях Пошаговое руководство. Настройка заголовков элементов в мобильных формах и Пошаговое руководство. Создание настраиваемого элемента управления визуализацией для мобильных страниц.
Отображение поля на странице представления списка или форме всегда начинается с элемента SPMobilePageContents в области текста (контента) страницы. Как описано ранее в статье Система отображения страниц для мобильных устройств, этот элемент запускает последовательность вызовов, которая в конечном итоге завершается вызовом элемента RenderingTemplate, отображающего соответствующую область мобильной страницы. Практически во всех случаях это элемент RenderingTemplate с сегментированным идентификатором. Если элемент RenderingTemplate с соответствующим именем не найден, используется шаблон по умолчанию. Это означает, что для настройки отображения поля можно создать элемент RenderingTemplate с идентификатором, который будет искать среда выполнения.
В частности, среда выполнения ищет элемент RenderingTemplate с идентификатором вида MobileCustomListField_идентификатор_типа_списка_тип_поля_поле.
Заполнители идентификатор_типа_списка, тип_поля и поле, определяются в статье Сегментированные идентификаторы шаблонов отображения.
Если элемент RenderingTemplate с искомым идентификатором не существует, используется объект RenderingTemplate с идентификатором MobileDefaultListField.
Существующие шаблоны визуализации
В следующем списке определяются элементы RenderingTemplate для отображения поля, которые уже существуют в MobileDefaultTemplates.ascx или GwbMobileDefaultTemplates.ascx при установке SharePoint Foundation.
MobileCustomListField_Contacts_Text_WorkZip
MobileCustomListField_PictureLibrary_Computed_ImageSize
MobileCustomListField_Posts_DateTime_PublishedDate
MobileCustomListField_Events_UserMulti_ParticipantsPicker
MobileCustomListField_CallTrack_DateTime_CallTime
MobileCustomListField_CallTrack_Computed_RefDetail
MobileCustomListField_Whereabouts_User_Name
Изменение файлов MobileDefaultTemplates.ascx или GwbMobileDefaultTemplates.ascx не поддерживается. Можно создавать новые элементы RenderingTemplate с повторяющимися именами (в собственном ASCX-файле), однако при этом существует риск нарушения работы других решений, которые установлены в развертывании SharePoint Foundation и зависят от исходных элементов RenderingTemplate с такими именами.
![]() |
---|
Элементы RenderingTemplate, которые поставляются с SharePoint Foundation, загружаются до загрузки настраиваемого шаблона отображения, поэтому при загрузке настраиваемого шаблона отображения, имя которого совпадает с именем существующего шаблона, исходный шаблон переопределяется. Если несколько настраиваемых элементов RenderingTemplate имеют одинаковые имена, элемент с последним по алфавиту именем файла переопределяет другие. Если в этом файле содержится несколько шаблонов с такими одинаковыми именами, ни один из этих шаблонов не загружается. |
Кроме того, уже существует элемент RenderingTemplate по умолчанию с идентификатором MobileDefaultListField. Этот элемент используется средой выполнения во всех случаях, когда элемент RenderingTemplate для текущего списка и поля не определен. Аналогичный риск присутствует в тех случаях, когда создается новый элемент 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-файл и присвойте ему идентификатор в следующем формате: MobileCustomListField_идентификатор_типа_списка_тип_поля_поле.
ListTypeID — либо число-идентификатор типа текущего списка (например 105), либо одно из значений перечисления SPListTemplateType (например Contacts).
Параметр тип_поля определяет тип данных поля, а параметр поле — внутреннее имя поля. Дополнительные сведения об использовании этих заполнителей см. в статье Система отображения страниц для мобильных устройств.
В шаблоне отображения могут непосредственно объявляться отображаемые элементы управления, такие как Label, а также элементы управления отображением, производные от класса SPMobileBaseFieldControl.
В меню Построение выберите команду Развернуть решение. При этом ACSX-файл будет автоматически сохранен и развернут в папку %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates, а веб-приложение — перезапущено, в результате чего все ACSX-файлы в этой папке будут перезагружены.
Пример
В следующем примере определения элемента RenderingTemplate показано создание нового поля заголовка для элементов в списках Извещения. Подробные примеры см. в статьях Пошаговое руководство. Настройка заголовков элементов в мобильных формах и Пошаговое руководство. Создание настраиваемого элемента управления визуализацией для мобильных страниц.
<SharePoint:RenderingTemplate RunAt="Server" ID="MobileCustomListField_Announcements_Text_Title" >
<Template>
<mobile:Label Text="Title field in Announcements List" RunAt="Server" />
</Template>
</SharePoint:RenderingTemplate>
См. также
Задачи
Пошаговое руководство. Настройка заголовков элементов в мобильных формах
Концепции
Практическое руководство. Создание определения настраиваемого типа поля