15 февр. 2012 г.

CopyUtil.aspx

В SharePoint существует страница приложения /_layouts/CopyUtil.aspx. Совсем не просто определить её назначение по названию. На самом деле она ничего никуда не копирует, а просто перенаправляет пользователя на форму определённого элемента списка.
Использование её целесообразно при формировании списка ссылок для элементов с разных узлов, например, для отображения результата запроса, сделанного через SPSiteDataQuery.

Рассмотрим, какие параметры следует добавить в адрес страницы CopyUtil.
Если нужный элемент находится на том же узле, на котором будет размещена ссылка, то достаточно добавить параметр InThisWeb=1. В противном случае мы должны как-то указать узел элемента: либо через идентификаторы, либо через адрес. Мы имеем два варианта указания нахождения элемента: по идентификаторам коллекции узлов, узла, списка и самого элемента, или же просто по адресу элемента. В первом случае нужно обязательно добавить параметры Use=id, SiteId, WebId (эти два последних игнорируются, если есть InThisWeb=1), ListId и ItemId. Во втором случае - добавить параметр ItemUrl.
Для того, чтобы открылась форма редактирования элемента, необходимо добавить параметр Action=editform. Чтобы направить пользователя на форму просмотра, добавляем Action=dispform или же вовсе пропускаем параметр Action.
Если добавить параметр Source, то он без изменения будет добавлен в адрес элемента.
Получив необходимые данные, страница CopyUtil откроет, если надо, узел, возьмёт нужный список и адреса его форм, сформирует адрес элемента и выполнит перенаправление с использованием метода SPUtility.Redirect.

Использование этой страницы вместе с публикацией имеет свои особенности и ограничения, про которые можно прочитать здесь: http://blog.mastykarz.nl/copyutilaspx-and-publishing-sites/

Комментариев нет:

Отправить комментарий