Класс 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)