Définir par programme un champ TaxonomyField sur un élément de liste
La situation:
J'ai un tas de Termes dans le Magasin de termes et une liste qui les utilise.
Beaucoup d'expressions qui n'ont pas encore été utilisées, et ne sont pas encore disponibles dans le TaxonomyHiddenList.
Si elles ne sont pas encore là, ils n'ont pas d'ID, et je ne peux pas les ajouter à un élément de la liste.
Il existe une méthode GetWSSIdOfTerm
sur Microsoft.SharePoint.Taxonomy.TaxonomyField
qui est censé retourner l'ID d'un terme pour un site spécifique.
Cela donne de l'Id si le terme a déjà été utilisé et qu'il est présent dans le TaxonomyHiddenList, mais si ce n'est pas alors la valeur renvoyée est 0.
Est-il un moyen de faire ajouter des termes à la TaxonomyHiddenList ou de force ce qui se passe?
source d'informationauteur Mel Gerats
Vous devez vous connecter pour publier un commentaire.
Ne pas utiliser
parce que vous aurez des erreurs lorsque vous souhaitez analyser ce point.
Pour le réglage de la valeur dans une taxonomie de terrain, vous avez juste à utiliser :
Ce qui concerne
Dans le cas de l'utilisation de la
puis lors de l'instanciation TaxonomyFieldValue
exception sera levée avec le message
Vous devez en outre fournir WssId de construire terme de chaîne comme indiqué ci-dessous
Sur MSDN, vous pouvez trouver comment faire pour créer un Terme et l'ajouter à TermSet. L'échantillon est fournie à partir de TermSetItem description de la classe. TermSet doit avoir une méthode CreateTerm(nom, lcid) héritées de TermSetItem. Par conséquent, vous pouvez l'utiliser dans l'exemple ci-dessous int instruction catch c'est à dire:
Comme pour l'attribution terme à la liste, ce code devrait fonctionner (je ne suis pas sûr du nom du champ "Tags", cependant, il est facile de trouver le bon nom interne de la taxonomie du domaine):