2009-05-27 17 views
1

SharePointでは、以下のID;#値のような書式設定のIDと値のペアが多数あります。これは、マルチルックアップのようなフィールドではさらに複雑になり、そのフィールドの値を抽出するとid_1;#value_1;#id_2;#value_2;#id_3;#value_3のような結果が得られます。SharePoint ListItemデータから ';#'を削除する

既知のものがあればこのプロセスを単純化し、最低でもIDからIDを削除する組み込み関数を使用します。

答えて

2

フィールド値オブジェクトは、Sharepointデータベースに文字列として格納されます。単純な値(「Hello world」など)の場合、これは十分簡単です。しかし、ID /値ペアなどの複雑なフィールド値の場合、値全体を単一の文字列として格納する方法は明らかに複雑です。 Sharepointの各フィールド値クラスは、独自のストレージ実装を担当します。 ToString()の書き込みを担当します。値の文字列表現です。フィールド値のコンストラクタは文字列を取り、それを解析し、すべてのプロパティを適切に設定します。

たとえば、SPFieldUrlValue(これは<a href="url">description</a>を表します)には、UrlおよびDescriptionプロパティがあります。新しいSPFieldUrlValue(string fieldValue)オブジェクトを作成すると、値が解析され、それに応じてプロパティが設定されます。

フィールド値の正しい/正確な(しばしば強く型付けされた)表現を得るためには、フィールドのタイプとそのフィールドの値クラスの種類を知る必要があります。

2

SPField class has many derived classed

例えば(つまりIDを使用しています。#VALUE)のルックアップフィールドタイプを想定しますSPField.Type == SPFieldType.LookupをチェックしてからSPFieldLookupにSPFieldをキャストして、レコードを取得するために、そのメソッドのオーバーライドを使用することができます値。

は詳細も

ため Custom Field Value Classesを参照してください - 私の記憶が正しければ、あなたが基本SPFieldオブジェクトに.ValueAsTextと.ValueAsHtmlを呼び出すことができ、それがIDを削除します(私はDyorのように、今、この権利をチェックすることはできません)。 #の値から。

関連する問題