Поделиться через


Класс MetadataNavigationSettings

Настраивает параметры объекта MetadataNavigationItem на элемент управления объекта SPList отображения иерархии метаданных и фильтры в представлениях списков.

Иерархия наследования

System.Object
  Microsoft.Office.DocumentManagement.MetadataNavigation.MetadataNavigationSettings

Пространство имен:  Microsoft.Office.DocumentManagement.MetadataNavigation
Сборка:  Microsoft.Office.DocumentManagement (в Microsoft.Office.DocumentManagement.dll)

Синтаксис

'Декларация
Public Class MetadataNavigationSettings
'Применение
Dim instance As MetadataNavigationSettings
public class MetadataNavigationSettings

Замечания

Получает параметры из и наборы параметров для объекта SPList и сохраняет их таким образом, что списка, дерева иерархии сайтов и фильтрации элементов управления можно использовать их в пользовательский Интерфейс страницы представления списка. Всегда используйте статический метод [GetMetadataNavigationSettings] для получения параметров из объекта SPList при инициализации новые экземпляры объекта MetadataNavigationSettings .

По умолчанию все списки имеют параметры, где ключевые фильтры не настроены и настроены только тип иерархии специальную папку, где отображаются только SPFolder объект в дереве. Используйте эти методы для изменения иерархии метаданных и ключевых фильтров данных в дереве.

Метод

Действие

метод [AddConfiguredHierarchy] , чтобы добавить дополнительные метаданные иерархии и ключевых фильтров к параметрам.

Добавление метаданных иерархии параметров.

[AddConfigureKeyFilter]

Добавление ключевых fliters параметры.

[FindConfiguredHierarchy]

Определяет, может ли настроен иерархии существует в параметрах.

Чтобы убедиться, что параметры внутреннего представления сохраняются используйте результат на исходные параметры вместо создания новой иерархии. После настройки объекта MetadataNavigationSettings изначально из списка, задайте внесены изменения параметров обратно в списке с помощью объекта SetMetadataNavigationSettings() .

[FindConfiguredKeyFilter]

Определяет, может ли настроить элементы существует в диалоговом окне настройки.

[ClearConfiguredHierarchies]

Очищает параметры и затем добавляет новые иерархии в установленном порядке.

[ClearConfiguredKeyFilters]

Очищает параметры и затем добавляет ключевых фильтров в установленном порядке.

Примеры

using SPWeb = Microsoft.SharePoint.SPWeb;
using SPList = Microsoft.SharePoint.SPList;
using SPField = Microsoft.SharePoint.SPField;

using MetadataNavigationSettings = Microsoft.Office.DocumentManagement.MetadataNavigation.MetadataNavigationSettings;
using MetadataNavigationHierarchy = Microsoft.Office.DocumentManagement.MetadataNavigation.MetadataNavigationHierarchy;
using MetadataNavigationKeyFilter = Microsoft.Office.DocumentManagement.MetadataNavigation.MetadataNavigationKeyFilter;
using MetadataNavigationContext = Microsoft.Office.DocumentManagement.MetadataNavigation.MetadataNavigationContext;

namespace Microsoft.SDK.SharePointServer.Samples
{
    public static class MetadataNavigationSettingsSamples
    {
        public static void AddFieldsToMDNSettings(SPList list)
        {
            // TODO: Replace these variable values and input parameters with your own values.
            //
            // internal name of the SPField to add into the key filters
            string fieldNameKeyFilterToAdd = "Modified";

            // Validate the input parameters.
            //
            if (null == list)
            {
                throw new System.ArgumentNullException("list");
            }

            // Get the MDN settings object for the SPList that was passed in.
            //
            MetadataNavigationSettings mdnSettings =
                MetadataNavigationSettings.GetMetadataNavigationSettings(list);

            // Add hiearchies into the settings if they are not already there
            //
            MetadataNavigationHierarchy folderHierarchyToAdd =
                MetadataNavigationHierarchy.CreateFolderHierarchy();
            if (null == mdnSettings.FindConfiguredHierarchy(folderHierarchyToAdd.FieldId))
            {
                mdnSettings.AddConfiguredHierarchy(folderHierarchyToAdd);
            }

            MetadataNavigationHierarchy contentTypeHierarchyToAdd =
                MetadataNavigationHierarchy.CreateContentTypeHierarchy();
            if (null == mdnSettings.FindConfiguredHierarchy(contentTypeHierarchyToAdd.FieldId))
            {
                mdnSettings.AddConfiguredHierarchy(contentTypeHierarchyToAdd);
            }

            // Add key filters into the settings if they are not already there
            //
            SPField newKeyFilterField = list.Fields[fieldNameKeyFilterToAdd];
            if (null == mdnSettings.FindConfiguredKeyFilter(newKeyFilterField.Id))
            {
                mdnSettings.AddConfiguredKeyFilter(new MetadataNavigationKeyFilter(newKeyFilterField));
            }

            MetadataNavigationKeyFilter contentTypeKeyFilter =
                MetadataNavigationKeyFilter.CreateContentTypeKeyFilter();
            if (null == mdnSettings.FindConfiguredKeyFilter(contentTypeKeyFilter.FieldId))
            {
                mdnSettings.AddConfiguredKeyFilter(contentTypeKeyFilter);
            }

            // Set the MDN settings back into the list and automatically adjust indexing.
            //
            MetadataNavigationSettings.SetMetadataNavigationSettings(list, mdnSettings, true);
        }
    }
}

namespace Microsoft.SDK.SharePointServer.Samples.WebControls
{

    public static class MetadataNavigationSettingsWebSamples
    {
        public static void ToggleMDNSettingsStateInWebRequest(SPWeb web, System.Guid listId)
        {
            // Validate the input parameters.
            //
            if (null == web)
            {
                throw new System.ArgumentNullException("web");
            }

            // Ensure that there is a current context for these operations
            //
            if (null == MetadataNavigationContext.Current)
            {
                throw new System.InvalidOperationException("No current web context or MetadataNavigationContext");
            }

            // Get the MDN settings for the input web and list id using the cache
            //
            System.Guid listIdToUse = listId;
            MetadataNavigationSettings mdnSettings =
                MetadataNavigationSettings.GetMetadataNavigationSettings(web, listId);

            // If no settings were retrieved then try the current context settings.
            //
            if (null == mdnSettings)
            {
                mdnSettings = MetadataNavigationSettings.Current;
            }

            if (null == mdnSettings)
            {
                throw new System.ArgumentException("Cannot retrieve setting from inputs or from current context");
            }

            if(System.Guid.Empty != MetadataNavigationContext.Current.ListId)
            {
                listIdToUse = MetadataNavigationContext.Current.ListId;
            }

            if (mdnSettings.IsEnabled)
            {
                // If the current settings are enabled then clear them back to default (which is only folder hierarchy)
                mdnSettings.ClearConfiguredHierarchies();
                mdnSettings.ClearConfiguredKeyFilters();
                mdnSettings.AddConfiguredHierarchy(MetadataNavigationHierarchy.CreateFolderHierarchy());
            }
            else
            {
                // If they are not enabled then add a content type key filter and hierachy
                mdnSettings.AddConfiguredHierarchy(MetadataNavigationHierarchy.CreateContentTypeHierarchy());
                mdnSettings.AddConfiguredKeyFilter(MetadataNavigationKeyFilter.CreateContentTypeKeyFilter());
            }

            // Set the MDN settings back into the list.
            //
            SPList list = web.Lists[listIdToUse];
            MetadataNavigationSettings.SetMetadataNavigationSettings(list, mdnSettings);
        }

    }
}

Потокобезопасность

Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.

См. также

Справочные материалы

Элементы MetadataNavigationSettings

Пространство имен Microsoft.Office.DocumentManagement.MetadataNavigation

GetMetadataNavigationSettings(SPWeb, Guid)

GetMetadataNavigationSettings(SPWeb, Guid, Boolean)

SetMetadataNavigationSettings(SPList, MetadataNavigationSettings)

SetMetadataNavigationSettings(SPList, MetadataNavigationSettings, Boolean)

SetMetadataNavigationSettings(SPList, MetadataNavigationSettings, Boolean, Boolean)

MetadataNavigationHierarchy

MetadataNavigationKeyFilter