Impostazione valore predefinito di colonna di metadati a livello di codice
-
16-10-2019 - |
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).
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; #