SharePoint UserData と返されたデータの ;# 構文
-
20-09-2019 - |
質問
SharePoint の専門家に、Lists Web サービスへの GetListItems() 呼び出しによって返されるデータ内の ;# について説明してもらえますか?
彼らがここで何をしているのか理解できると思います。;# はコメントを作成するための構文に似ています...さらに良いのは、ID だけでなく実際のデータ (文字列) を含めることです。この方法では、どちらも使用できますが、同じ列内でうまく組み合わせられています。
私は基地から大きく外れていますか?微妙に違う使い方が分かりません。例えば
I have a list with: ows_Author 658;#Tyndall, Bruno *in this case the 658 seems to be an ID for me in a users table somewhere* ows_CreatedDate (note: a custom field. not ows_Created) 571;#2009-08-31 23:41:58 *in this case the 571 seems to be an ID of the row I'm already in. Why the repetition?*
SharePoint のこの側面について光を当てられる人はいますか?
解決
文字列 ;#
ユーザー フィールドを含む SharePoint の検索フィールドで区切り文字として使用されます。オブジェクト モデルを操作する場合、次を使用できます。 SPFieldLookupValue
そして SPFieldUserValue
区切り文字で区切られた文字列を厳密に型指定されたオブジェクトに変換します。ただし、Web サービスを使用する場合は、文字列を自分で解析する必要があると思います。
最初の部分が整数 ID であることは正しいです。サイト ユーザー リスト内の ID、またはルックアップ リスト内の対応するアイテムの ID。2 番目の部分は、ユーザー名またはルックアップ列の値です。
Nicolas は、この区切り文字が他の複合フィールド値にも使用されることを正しく指摘しています。
- SPFieldLookupValueCollection
- SPFieldMultiColumnValue
- SPFieldMultiChoiceValue
- SPFieldUserValueCollection
他のヒント
SPFieldUserが使用SPFieldLookupから継承;#表記。あなたは簡単にSPFieldLookupValueクラスの新しいインスタンスを作成することにより、値を解析することができます:
string rawValue = "1;#value";
SPFieldLookupValue lookupValue = new SPFieldLookupValue(rawValue);
string value = lookupValue.LookupValue; // returns value