Принцип работы форм SharePoint
Дата последнего изменения: 7 июля 2010 г.
Применимо к: SharePoint Foundation 2010
У каждого типа списков обычно есть набор ASPX-страниц для форм отображения, редактирования и создания (DispForm.aspx, EditForm.aspx и NewForm.aspx), которые поставляются вместе со списками. Эти ASPX-страницы поставляются в "пространство контента". Другими словами, они не находятся в папке "%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS" и не работают через виртуальный каталог "/_layouts". Для библиотек документов эти страницы поставляются внутри скрытой вложенной папки списка с именем forms. Для других списков SharePoint эти страницы поставляются в корневой папке списка. Каждая из этих ASPX-страниц содержит объект Microsoft.SharePoint.WebPartPages.ListFormWebPart, который служит для визуализации формы.
Microsoft SharePoint Foundation 2010 использует Microsoft ASP.NET для отображения форм. Логическая структура каждой формы состоит из набора элементов управления (например, элемента управления для панели инструментов). Специальный элемент управления, называемый итератор (Microsoft.SharePoint.WebControls.ListFieldIterator), используется для перебора коллекции полей списка и добавления каждого поля в форму.
Параметры для настройки шаблонов форм
В предыдущих версиях SharePoint Foundation формы элементов списка обычно настраивались путем изменения определений форм в файле Schema.xml списка. Элемент Form содержал данные об отображении отдельного типа форм, включая дочерние элементы CAML, определявшие HTML-код и скрипт, которые надо было вставить на страницу. В SharePoint Foundation используются функциональные возможности шаблонов, встроенные в шаблоны элементов управления Microsoft ASP.NET.
Примечание |
---|
Тем не менее можно применять настраиваемые определения форм, используя файл Schema.xml, если присвоить атрибуту UseLegacyForm элемента Form значение TRUE, но рекомендуется использовать вместо этого элементы управления ASP.NET. |
Хотя формы все равно можно определять в Schema.xml, теперь для изменения форм можно использовать преимущества богатых функциональных возможностей, доступных благодаря шаблонам элементов управления ASP.NET. Шаблоны элементов управления используют смесь элементов HTML и дочерних элементов управления, вставляя HTML в содержащую их страницу или элемент управления. Конструируя иерархию шаблонов элементов управления, можно фактически создать модель наследования для разрабатываемых веб-приложений, тем самым повышая эффективность повторного использования кода.
Настраиваемые шаблоны форм позволяют изменять способ отображения форм элементов списка. В файле Schema.xml определения списка для каждого типа списков с помощью атрибута Template можно указать идентификаторы шаблонов элементов управления, которые следует использовать для визуализации форм. Необходимо указать атрибут Template для каждой формы, для которой будет применяться настраиваемый шаблон, который может быть одним или разным для разных форм. Если не указать настраиваемый шаблон для формы, то SharePoint Foundation применяет шаблон по умолчанию. Настраиваемые шаблоны элементов управления должны быть определены в ASCX-файле в каталоге "%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\CONTROLTEMPLATES". Сведения об использовании Microsoft Visual Studio для создания пользовательского элемента управления, работающего в SharePoint Foundation, см. в разделе Практическое руководство. Создание пользовательского элемента управления для страницы приложения или веб-страницы SharePoint.
Внимание! |
---|
Переопределение шаблона SharePoint Foundation по умолчанию изменяет поведение формы во всей ферме и не позволяет форме сохранить поведение по умолчанию при обновлении версий. Вместо этого, чтобы реализовать настраиваемое поведение, создайте собственный шаблон списка, использующий настраиваемый шаблон форм. |
В качестве примера можно переопределить визуализацию всех форм элементов списков опросов. В определении опросного списка в файле "%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\SurveysList\Survey\Schema.xml" атрибут Template задает ListForm в качестве шаблона для форм отображения элементов и шаблон SurveyForm для форм создания и редактирования элементов. Это значит, что существуют шаблоны элементов управления, идентификаторы которых равны ListForm и SurveyForm и которые находятся в папке "\ControlTemplates", и можно глобально заменить шаблоны форм по умолчанию, используемые для форм элементов списков опроса, на эти шаблоны. Определите настраиваемые шаблоны с одинаковыми идентификаторами в пользовательском ASCX-файле.
Примечание |
---|
Можно сделать только один шаблон с идентификатором, равным ListForm или SurveyForm, который будет использоваться, поэтому пользуйтесь этой функцией расширения с осторожностью. Наличие дублирующих идентификаторов для настраиваемых шаблонов не поддерживается и может привести к непредсказуемым результатам. |
Также можно зарегистрировать настраиваемые шаблоны форм по их типу контента. Если есть специфический тип контента, то можно для него задать настраиваемую форму, которую надо использовать вместо стандартной формы библиотеки документов, используемой в библиотеках документов по умолчанию. Дополнительные сведения о задании настраиваемых форм для типов контента см. в разделе Обзор схемы FormTemplates.
Поддерживаются и другие средства отображения форм. Уже существующий элемент управления ListFormWebPart нельзя удалить со страницы формы списка, но его можно скрыть. После этого можно добавить, например, объект DataFormWebPart и использовать XSLT-преобразование, чтобы визуализировать формы для элементов. Также можно установить URL-адрес страницы формы для типа контента (свойства DisplayFormUrl, EditFormUrl или NewFormUrl), чтобы перенаправить пользователей на настраиваемую страницу форм. Кроме того, можно использовать элемент управления Microsoft.SharePoint.WebControls.SPDataSource для привязки формы к простым элементам управления ASP.NET и для обновления данных.
Важно! |
---|
Хотя существует возможность добавления веб-частей в формы отображения, редактирования и создания для элементов списка (DispForm.aspx, EditForm.aspx и NewForm.aspx), такие действия в SharePoint Foundation не рекомендуются и не поддерживаются. Поддерживается добавление веб-частей на страницы просмотра списка (AllItems.aspx). |