2009-05-27 7 views
1

Dans SharePoint, plusieurs paires de valeurs d'ID-valeur qui se présentent comme l'ID suivant: #value. Ceci est encore compliqué avec des champs comme multi-recherche où, lors de l'extraction de la valeur de ce champ peut donner des résultats comme id_1; # value_1; # id_2; # value_2; # id_3; # value_3Suppression de '; #' des données SharePoint ListItem

Je me demande s'il existe fonction intégrée qui va simplifier ce processus et à tout le moins supprimer les ID de la valeur.

Répondre

2

Les objets de valeur de champ sont stockés en tant que chaînes dans la base de données Sharepoint. Pour des valeurs simples (par exemple "Hello world"), ceci est assez simple. Mais pour les valeurs de champs complexes - comme une paire ID/valeur, comment stocker la valeur entière en une seule chaîne est évidemment plus complexe également. Chaque classe de valeur de champ dans Sharepoint est responsable de sa propre implémentation de stockage. ToString() est responsable de en écrivant une représentation sous forme de chaîne de la valeur; tandis que le constructeur de la valeur du champ prend une chaîne et est responsable de l'analyse et de la définition appropriée de toutes les propriétés sur lui-même. Par exemple, SPFieldUrlValue (qui représente un <a href="url">description</a>) a des propriétés Url et Description. Par exemple, SPFieldUrlValue (<a href="url">description</a>) possède des propriétés Url et Description. La création d'un nouvel objet SPFieldUrlValue(string fieldValue) analyse la valeur et définit les propriétés en conséquence. Pour obtenir une représentation vraie/correcte (et souvent fortement typée!) De la valeur du champ, vous devez connaître le type du champ et la classe de valeur de ce champ.

2

Le SPField class has many derived classed

prenant par exemple un type de champ de recherche (qui utilise l'ID; #value) vous pouvez vérifier SPField.Type == SPFieldType.Lookup puis jeté SPField à SPFieldLookup et utiliser ses méthodes outrepassée pour obtenir les enregistrements valeur.

Voir Custom Field Value Classes pour plus de détails

également - Si je me souviens bien (je ne peux pas vérifier ce moment si dyor) vous pouvez appeler .ValueAsText et .ValueAsHtml sur l'objet SPField de base et enlèverez ID; # parmi les valeurs.

Questions connexes