Copyright© 2017  Aiprovide Corporation all Right Reserved.

  • Aiprovide Coroporation
  • Aiprovide Corporation

FieldValueで値を取得する

2017/05/07

SharePointのリストの列は型を持ちますが、リストアイテムの列から値を取得する際に、この型を意識する必要がある場合について、記載しています。

 

 

リスト列の型について[オンライン・オンプレ]

に記載したように、SharePointのリストの列は型を持ちます。

ですが、リストアイテムの列から値を取得する際に、
 string strValue = SPListItem[列の内部名];

の形でプログラムを記述した場合は、SharePoint API が暗黙的に値を文字列型に変換して返してくるため、1行テキスト列や選択肢列を扱っている際に、特に、この型を意識する必要がありません。

 

 ですが、状況に応じて、この型を意識する必要がある場合があります。この意識する場合と言うのは、リストアイテムの列の値をその型に変換する必要があるということです。ただし、この変換先の型は「リスト列の型について」で記載したクラスではなく、そのクラス名に、Valueを追加したクラスになります。
例えば、SPFieldUserでしたらSPFieldUserValueとなります。

 このような使い分けになります。

列の型のクラス:

 プログラムによりリストに新たに列を追加した後、このクラスを元にインスタンスを生成して追加する。

列の型のクラス名+Valueのクラス:

 リスト列の値を取得したり、設定したりする際に使用する。

 

 ここでは、「列の型のクラス名+Value」のクラスについて、いくつか記載してみます。

 

 

1.SPFieldUserValue、SPFieldUserValueCollection

 

 ユーザーまたはグループ列から、ユーザーを取得するにはSPFieldUserValueを使用します。また、ユーザーまたはグループ列にて、「複数選択できるようにする」とした場合は、SPFieldUserValueCollectionを使用します。

 

①オンライン

 

列の値の型から、単一ユーザーか複数ユーザーかを判断し、単一ユーザーの場合はSPFieldUserValueに変換し、複数ユーザーの場合はSPFieldUserValueCollectionに変換して1ユーザーづつ処理します。

 

 

 

②オンライン

 

Java script(JSOM)によるプログラム例です。

 var colUserValue = objSPListItem.get_item(strFieldName);

にてユーザーを取得し、そのlength プロパティから、単一ユーザーか複数ユーザーかを判断しています。

 

 

以上となります。

 

 

 

 

Share on Facebook
Share on Twitter
Please reload

RECENT POST
Please reload