Поле выбора Sharepoint - PullRequest
       13

Поле выбора Sharepoint

1 голос
/ 24 марта 2009

Мне нужно поле выбора (в столбце сайта) для ссылки на список, который я импортирую в sharepoint. Этот список очень редко обновляется, чтобы добавить дополнительные варианты. Как бы я создал этот столбец? Программный

Хорошо, посмотрите, что это поиск за слово ... просто пытаюсь понять, как его кодировать ... Я предполагаю, что мне нужно сначала импортировать список как новый тип контента. Затем создайте поисковый столбец (с несколькими) для типа контента?!?

Ответы [ 2 ]

6 голосов
/ 24 марта 2009

Вот некоторый код, который добавит поле поиска к существующему типу контента.

Если вы используете определения списка, то это единственный способ включить поле поиска. Он не может быть добавлен в CAML определения списка, потому что требуется указатель для списка поиска, а это неизвестно заранее. SharePoint автоматически создает этот Guid при создании списка.

Так что вам нужно сначала создать справочный столбец внутри корневого SPWeb SPSite

private void CreateLookup(SPWeb web, SPList lookupList, String lookupField, String fieldName, String fieldGroup, bool allowMultiLookup)
{
    using (SPSite site = web.Site)
    {
        using (SPWeb rootWeb = site.RootWeb)
        {
            rootWeb.Fields.AddLookup(fieldName, lookupList.ID, web.ID, false);
            SPFieldLookup fieldLookup = (SPFieldLookup)rootWeb.Fields[fieldName];
            if (fieldLookup == null) return;
            fieldLookup.AllowMultipleValues = allowMultiLookup;
            fieldLookup.LookupField = lookupField;
            fieldLookup.Group = fieldGroup;
            fieldLookup.Title = fieldName;
            fieldLookup.Update(true);
        }
    }
}

И тогда вам нужно будет добавить это поле к существующему типу контента

private void AddLookupToContentType(SPWeb web, String fieldName, String contentTypeName)
{
    using (SPSite site = web.Site)
    {
        using (SPWeb rootWeb = site.RootWeb)
        {
            SPFieldLookup lookupField = (SPFieldLookup)rootWeb.Fields[fieldName];
            if (lookupField == null) return;
            SPContentType riskContentType = rootWeb.ContentTypes[contentTypeName];
            if (riskContentType == null) return;
            riskContentType.FieldLinks.Add(new SPFieldLink(lookupField));
            riskContentType.Update(true);
        }
    }
}
0 голосов
/ 24 марта 2009

Звучит так, как будто вы ищете столбец Lookup. Сначала нужно импортировать список, а затем создать поиск в виде столбца сайта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...