Domanda

Sto cercando di impostare il valore di metadati per una cartella in una libreria di documenti con il seguente codice:

using (SPSite siteCollection = new SPSite("http://dev.site.com"))
        {
            using (SPWeb web = siteCollection.OpenWeb())
            {
                SPList customDocumentLibrary = web.Lists["Program Documents"];
                MetadataDefaults columnDefaults = new MetadataDefaults(customDocumentLibrary);

                SPFolder testFolder = customDocumentLibrary.RootFolder.SubFolders["Programs"];

                columnDefaults.SetFieldDefault("/Program Documents/Programs/Academics", "Programs", "Academics");
                columnDefaults.Update();
            }

        }

sto ottenendo il seguente errore:

The given value for a taxonomy field was not formatted in the required <int>;#<label>|<guid> format. 

Qualcuno ha un esempio di come passare nei parametri per SetFieldDefault ()? Non sono sicuro che cosa l'int; #label si riferisce nel messaggio di errore (anche se ho il GUID del campo tassonomia).

È stato utile?

Soluzione

Così si scopre il valore è necessario passare in per il valore di tassonomia è il seguente:

lcid; #Term Nome | Guid del termine

per esempio:.

1033; #Academics | bc943091-79ac-4f5f-a79b-205e8e717823

Il codice completo per impostare il valore predefinito colonna di metadati è qui:

        using (SPSite siteCollection = new SPSite("http://www.yoursite.com"))
        {
            using (SPWeb web = siteCollection.OpenWeb("/yourweb/"))
            {

                SPList customDocumentLibrary = web.Lists["Documents"];
                SPFolder rootFolder = customDocumentLibrary.RootFolder;

                MetadataDefaults columnDefaults = new MetadataDefaults(customDocumentLibrary);

                columnDefaults.RemoveAllDefaults();
                columnDefaults.SetFieldDefault(rootFolder, "Programs", "1033;#Academics|bc943091-79ac-4f5f-a79b-205e8e717823");
                columnDefaults.Update();
            }

        }

Altri suggerimenti

Anche se potrebbe funzionare bene per fornire il LCID per quanto riguarda il valore di default, non è quello che si suppone di fornire. Si dovrebbe fornire l'ID del listitem nella lista nascosta "/ Liste / TaxonomyHiddenList" che corrisponde al termine si sta impostando come predefinito. Questa lista è una sorta di cache tutti i termini che si utilizzano all'interno del tuo sito, che è spiegato in dettaglio qui: http://www.wictorwilen.se/Post/Dissecting -la-SharePoint-2010-Tassonomia-fields.aspx

Spero che questo aiuti!

Se hai a che fare con più valori della tassonomia dei valori sono separati da; #

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top