2009-05-27 9 views
1

In SharePoint viele Felder ID-Wert-Paare, die wie die folgende ID formatieren; #value. Dies ist noch komplizierter mit Feldern wie multi-lookup, wenn das Extrahieren des Wertes dieses Feldes Ergebnisse wie id_1; # value_1; # id_2; # value_2; # id_3; # value_3Entfernen von "; #" aus SharePoint ListItem-Daten

ergeben kann eingebaute Funktion, die diesen Prozess vereinfacht und zumindest die IDs aus dem Wert entfernt.

Antwort

2

Feldwertobjekte werden als Zeichenfolgen in der Sharepoint-Datenbank gespeichert. Für einfache Werte (z. B. "Hallo Welt") ist dies einfach genug. Aber für komplexe Feldwerte - wie ein ID/Wert-Paar - ist es offensichtlich auch komplexer, wie der gesamte Wert als eine einzelne Zeichenfolge gespeichert wird. Jede Feldwertklasse in Sharepoint ist für ihre eigene Speicherimplementierung verantwortlich. ToString() ist verantwortlich für schreiben eine Zeichenfolge Darstellung des Werts; während der Konstruktor des Feldwerts eine Zeichenfolge annimmt und dafür verantwortlich ist, diese zu analysieren und alle Eigenschaften für sich selbst entsprechend einzustellen.

Zum Beispiel hat der SPFieldUrlValue (der einen <a href="url">description</a> darstellt) die Eigenschaften Url und Description. Durch das Erstellen eines neuen Objekts SPFieldUrlValue(string fieldValue) wird der Wert analysiert und die Eigenschaften entsprechend festgelegt.

Um eine echte/korrekte (und oft stark typisierte!) Darstellung des Feldwerts zu erhalten, müssen Sie wissen, um welchen Typ es sich handelt und um welche Wertklasse es sich handelt.

2

Die SPField class has many derived classed

Zum Beispiel eines Lookup Feldtypen unter der Annahme (das verwendet die ID; #value) Sie können SPField.Type überprüfen == SPFieldType.Lookup und dann SPField zu SPFieldLookup gegossen und seine überschriebene Methoden verwenden, um die Datensätze zu erhalten Wert.

Siehe Custom Field Value Classes für weitere Details

auch - wenn ich mich richtig erinnere (ich dieses Recht nicht überprüfen kann jetzt so dyor) Sie .ValueAsText und .ValueAsHtml auf der Basis SPField Objekt aufrufen kann, und es wird ID entfernen; # aus den Werten.

Verwandte Themen