Создание столбца сайта без использования функций
-
16-10-2019 - |
Вопрос
Я пытаюсь создать столбец сайта в VS2010 без использования функций. Это возможно? Если да, пожалуйста, дайте мне знать, с чего я могу начать искать.
Я не хочу использовать функцию, потому что функция поставляется с собственной головной болью в области обслуживания, которую я хочу избежать как можно большего. Я хочу иметь возможность индивидуально устанавливать/обновлять/удалять каждый столбец сайта, который я создаю в любой данной среде.
Решение
Если вы просто пытаетесь избежать использования Declarative XML для создания столбца, вы можете написать код C# для создания столбца. Но чтобы развернуть на вашем сайте через WSP, его все равно нужно будет упаковать в функцию.
Вы можете написать консольное приложение, которое работает на сервере, и выполняет код для создания столбца. Тем не менее, это кажется скорее головной болью в большей степени, чем на создание функции.
В любом случае, код будет выглядеть примерно так:
using(SPSite site = new SPSite("url-of-your-site"))
{
using(SPWeb web = site.RootWeb)
{
web.Fields.Add("ColumnName", SPFieldType.Text, true);
}
}
Вы также можете создать сценарий PowerShell, чтобы добавить столбец. Что-то типа:
$site = Get-SPSite "your-site-url"
$web = $site.RootWeb
$column = '<Field Name=...' +
'ID=...' +
etc. +
'></Field>'
$web.Fields.AddFieldAsXml($column)
Но на самом деле функции не так уж и плохи, как только вы принимаете эту функцию активации - это способ программного добавления элементов на сайт SharePoint.
Другие советы
Вы можете создавать столбцы тремя способами:
- Используя пользовательский интерфейс SharePoint
- Используя модель объекта SharePoint
- Развертывая функцию, которая устанавливает столбец на основе файла определения XML