Partager via


MetadataNavigationSettings - Classe

Configure les paramètres sur un objet MetadataNavigationItem sur un objet SPList contrôle l'affichage des hiérarchies de métadonnées et des filtres dans les affichages de liste.

Hiérarchie d’héritage

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

Espace de noms :  Microsoft.Office.DocumentManagement.MetadataNavigation
Assembly :  Microsoft.Office.DocumentManagement (dans Microsoft.Office.DocumentManagement.dll)

Syntaxe

'Déclaration
Public Class MetadataNavigationSettings
'Utilisation
Dim instance As MetadataNavigationSettings
public class MetadataNavigationSettings

Remarques

Obtient les paramètres à partir d'et jeux à un objet SPList et leur persiste, telles que la liste, arborescence de la hiérarchie des sites et des contrôles de filtre peuvent les utiliser dans la page d'affichage de liste l'interface utilisateur. Toujours utiliser la méthode statique [GetMetadataNavigationSettings] pour obtenir les paramètres à partir d'un objet SPList lors de l'initialisation de nouvelles instances de l'objet MetadataNavigationSettings .

Par défaut, toutes les listes ont paramètres où aucun filtre de touche n'est configurés et que le type de hiérarchie de dossier spécial est, qui n'indique que l'objet SPFolder dans l'arborescence. Utilisez ces méthodes pour modifier la hiérarchie de métadonnées et les données de filtre de touche dans l'arborescence.

Méthode

Action

méthode [AddConfiguredHierarchy] pour ajouter des métadonnées supplémentaires des hiérarchies et des filtres clés aux paramètres.

Ajoute les hiérarchies de métadonnées pour les paramètres.

[AddConfigureKeyFilter]

Ajoute des clés fliters aux paramètres.

[FindConfiguredHierarchy]

Détermine si configuré les hiérarchies existent dans les paramètres.

Utilisez le résultat dans les paramètres d'origine au lieu de créer une nouvelle hiérarchie pour s'assurer que les paramètres d'affichage internes sont conservés. Une fois le réglage de l'objet MetadataNavigationSettings récupérées à l'origine de la liste, définir les paramètres d'ajusté précédent dans la liste avec l'objet SetMetadataNavigationSettings() .

[FindConfiguredKeyFilter]

Détermine si configuré les éléments existants dans les paramètres.

[ClearConfiguredHierarchies]

Vider les paramètres, puis ajoute des hiérarchies dans l'ordre souhaité.

[ClearConfiguredKeyFilters]

Vide les paramètres, puis ajouter des filtres clés dans l'ordre souhaité.

Exemples

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);
        }

    }
}

Cohérence de thread

Tous les membres statique (Partagé dans Visual Basic)s publics de ce type sont thread-safe. Cela n’est pas garanti pour les membres d’instance.

Voir aussi

Référence

MetadataNavigationSettings - Membres

Microsoft.Office.DocumentManagement.MetadataNavigation - Espace de noms

GetMetadataNavigationSettings(SPWeb, Guid)

GetMetadataNavigationSettings(SPWeb, Guid, Boolean)

SetMetadataNavigationSettings(SPList, MetadataNavigationSettings)

SetMetadataNavigationSettings(SPList, MetadataNavigationSettings, Boolean)

SetMetadataNavigationSettings(SPList, MetadataNavigationSettings, Boolean, Boolean)

MetadataNavigationHierarchy

MetadataNavigationKeyFilter