2

SharePointのエキスパートがList WebサービスへのGetListItems()呼び出しによって返されたデータを#説明できますか?SharePoint UserDataと返されるデータ内の構文#

私は彼らがここで何をしているのか理解していると思います。 ;#はコメントを書くための構文とほとんど同じですが、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のこの側面については、誰もそこから光を当てることはできますか?

答えて

8

文字列;#は、SharePointのルックアップフィールド(ユーザーフィールドを含む)によって区切り文字として使用されます。オブジェクトモデルを使用する場合は、SPFieldLookupValueSPFieldUserValueを使用して、区切り文字列を厳密に型指定されたオブジェクトに変換できます。しかし、Webサービスを操作するときは、自分で文字列を解析する必要があると思います。

最初の部分は、サイトユーザーリストの整数ID:ID、またはルックアップリストの対応する項目のIDです。 2番目の部分は、ルックアップ列のユーザー名または値です。


ニコラスが正しく

  • SPFieldLookupValueCollection ...この区切り文字も含めて他の複合フィールドの値に使用されていることを指摘し
  • SPFieldMultiColumnValue
  • SPFieldMultiChoiceValue
  • SPFieldUserValueCollection
+0

この表記法は、フィールドに複数の項目(複数選択フィールドなど)が格納されている場合にも役立ちます。これは、SPFieldLookupValueクラスの新しいインスタンスを作成することで簡単に解析できます。 –

3

SPFieldUserは、#表記を使用するSPFieldLookupから継承します。

string rawValue = "1;#value"; 
SPFieldLookupValue lookupValue = new SPFieldLookupValue(rawValue); 
string value = lookupValue.LookupValue; // returns value