Комментарии можно оставлять "здесь"
Если в нашем проекте необходимо использовать многократно одинаковые столбцы, типы контента и списки. А для меня особенно, не надеяться на администратора, что он всё выполнить по инструкции, плюс эту инструкцию необходимо будет создавать, лучше формирование необходимых элементов предусмотреть у себя в проекте.
Рассмотрим пример создания собственных (custom) столбцов сайта. Потом эти столбцы будем использовать в своём типе контента, который добавим в свой список.
Что нам предстоит сделать:
1. Добавим в проект шаблон типа контентаЕсли в нашем проекте необходимо использовать многократно одинаковые столбцы, типы контента и списки. А для меня особенно, не надеяться на администратора, что он всё выполнить по инструкции, плюс эту инструкцию необходимо будет создавать, лучше формирование необходимых элементов предусмотреть у себя в проекте.
Рассмотрим пример создания собственных (custom) столбцов сайта. Потом эти столбцы будем использовать в своём типе контента, который добавим в свой список.
Что нам предстоит сделать:
- Опишем новые столбцы
- Опишем тип контента
- Опишем список
2. Редактируем файл Elements.xml. Заменим созданное автоматически содержимое на
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field Type="DateTime" Format="DateOnly" DisplayName="Только Дата" ID="{ACBDC45D-1DBB-4E1B-AE74-791B106E8252}" StaticName="customDate" Name="customDate" Group="_Группа" />
<Field Type="Text" DisplayName="Текстовый номер" ID="{F091566A-A161-4674-8A5B-C1C9E586FC86}" StaticName="customtxtNumber" Name="customtxtNumber" Group="_Группа" />
<!-- Родительский тип контента: Элемент (0x01) -->
<ContentType ID="0x0100ea0528db89d740378081e99984619980" Name="CustomContentType" Group="_Группа" Description="Мой тип контента" Version="0">
<FieldRefs>
<FieldRef ID="{ACBDC45D-1DBB-4E1B-AE74-791B106E8252}" />
<FieldRef ID="{F091566A-A161-4674-8A5B-C1C9E586FC86}" />
</FieldRefs>
</ContentType>
</Elements>
В данном примере мы добавили два столбца «Только Дата» и «Текстовый номер» с типами дата и текст соответственно. Эти поля поместили в свою группу под именем «_Группа». ID полей должны быть уникальны, их можно сформировать с помощью соответствующих утилит. Более полный список типов полей и параметров можно посмотреть по следующему адресу
Далее, зная ID полей, добавляем их в наш тип контента, который унаследован от типа контента «Элемент». Развернём решение и посмотрим на перечень столбцов сайта (“/_layouts/mngfield.aspx ”) и типов контента (“/_layouts/mngctype.aspx ”). Можно увидеть, что появилась новая группа с нашими элементами
3. На основе нашего типа контента создадим шаблон списка. Для этого добавим в наш файл Elements.xml внутри тега <Element> следующее содержимое:
Далее, зная ID полей, добавляем их в наш тип контента, который унаследован от типа контента «Элемент». Развернём решение и посмотрим на перечень столбцов сайта (“/_layouts/mngfield.aspx ”) и типов контента (“/_layouts/mngctype.aspx ”). Можно увидеть, что появилась новая группа с нашими элементами
<ListTemplate Name="CustomContentType" Type="22200" BaseType="0" OnQuickLaunch="TRUE" SecurityBits="11" Sequence="410" DisplayName="Собственный список" Description="Список с собственным типом контента" DisallowContentTypes="False" />
Далее создадим описание: добавим в туже папку файл Schema.xml. Установим для него тип развёртывание ElementFile
<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Title="Список" FolderCreation="FALSE" Direction="$Resources:Direction;" Url="Lists/customList" BaseType="0" xmlns="http://schemas.microsoft.com/sharepoint/" EnableContentTypes="True" VersioningEnabled="True" >
<MetaData>
<ContentTypes>
<ContentType ID="0x0100ea0528db89d740378081e99984619980" Name="CustomContentType" Group="_Группа" Description="Мой тип контента" Version="0">
<FieldRefs>
<FieldRef ID="{ACBDC45D-1DBB-4E1B-AE74-791B106E8252}" />
<FieldRef ID="{F091566A-A161-4674-8A5B-C1C9E586FC86}" />
</FieldRefs>
</ContentType>
</ContentTypes>
<Fields>
<Field Type="DateTime" Format="DateOnly" DisplayName="Только Дата" ID="{ACBDC45D-1DBB-4E1B-AE74-791B106E8252}" StaticName="customDate" Name="customDate" Group="_Группа" />
<Field Type="Text" DisplayName="Текстовый номер" ID="{F091566A-A161-4674-8A5B-C1C9E586FC86}" StaticName="customtxtNumber" Name="customtxtNumber" Group="_Группа" />
</Fields>
<Views>
<View BaseViewID="1" Type="HTML" WebPartZoneID="Main" DisplayName="$Resources:core,objectiv_schema_mwsidcamlidC24;" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/images/generic.png" Url="AllItems.aspx">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="customDate"></FieldRef>
<FieldRef Name="customtxtNumber"></FieldRef>
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="customDate" Ascending="FALSE">
</Query>
<ParameterBindings>
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
</ParameterBindings>
</View>
</Views>
<Forms>
<Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main"/>
<Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main"/>
</Forms>
</MetaData>
</List>
В данном случаи мы повторили описание нашего типа контента, потом указали какие поля будут в списке и какие поля будут отображаться в представлении по умолчанию.
После развёртывания решения в списке возможных создаваемых списков можно увидеть и наш.
После развёртывания решения в списке возможных создаваемых списков можно увидеть и наш.
Комментариев нет:
Отправить комментарий