SharePoint 2010でListData.svcを使用する場合、選択フィールドに基づいてフィルタリングするにはどうすればよいですか?

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/14482

  •  16-10-2019
  •  | 
  •  

質問

ListData.svcを使用してクエリしようとしているリストがあります。私は、日付範囲内でレコードを引き戻そうとしており、選択フィールドから特定の値をチェックしようとしています。 lists.asmxを使用すると、CAMLクエリを作成して必要なレコードを引き戻すことができますが、この溶液にはlistData.svcを使用したいと思います。値がリストに保存されている列でフィルタリングすることができ、「$拡張」を使用して選択フィールドのデータを引き戻していますが、選択に基づいてフィルタリングするためにodata uriを構築する方法がわかりません。分野。

私はこのようなクエリを試しています:

http://tssites/departments/appdev/_vti_bin/ListData.svc/TeamCalendar?$expand=Flags&$filter=Flags eq 'PTO'

私が取り戻しているエラーは次のとおりです。

オペランドタイプと互換性がない 'eq' system.collections.generic.ienumerable`1 [[microsoft.sharepoint.linq.dataserviceentity、microsoft.sharepoint.linq、version = 14.0.0.0、culture = culture = neutral、publickeytoken = 71e9bce111e9429c] ']'位置6での「System.String」。

ご協力いただきありがとうございます。

役に立ちましたか?

解決

マルチセレクトフィールドではサポートされていません(つまり、通常のUIでチェックボックスとして表されるフィールド)。次の引用は2013年のものですが、ListData.svcにも同じルールが適用されます。ただし、データと使用するコントロールの表現方法に応じて、クライアント側でフィルタリングできます。

マルチバリュールックアップフィールドとユーザーのクエリ

マルチバリュールックアップフィールドは複数の値の文字列として返されるため、それらを照会する方法はありません(たとえば、挿入要素またはnotcludes要素に相当するものはサポートされていません)。

http://msdn.microsoft.com/en-us/library/fp142385(v=office.15).aspx

他のヒント

選択フィールドは、拡張を必要とせずに値で返されます。

例: IP_WorkflowStatus = IP_WorkflowStatusValue

拡張を使用せずにクエリの例を次に示します。

$filter=IP_WorkflowStatusValue eq '2-Validated'

拡張を使用する場合は、拡張されたフィールド表記関係/フィールドを使用する必要があります。

$filter=IP_WorkflowStatus/Value eq '2-Validated'&$expand=IP_WorkflowStatus

フィールド名に「値」を添付して、REST APIの選択フィールド値を取得します。たとえば、フィールド名がフラグの場合は、フィルター文字列のFlagsValueという用語を使用します。これは、選択フィールドがマルチセレクトフィールドではない場合に機能します。

あなたのURLは次のようにする必要があります

http://tssites/departments/appdev/_vti_bin/listdata.svc/teamcalendar?$ Expand = flags&$ filter = flagsvalue eq 'pto'

この問題については、別の回答があります。計算された列を作成し、そのための式として選択フィールドを追加します。次に、計算された列をフィルタリングに使用します。

マルチセレクト選択フィールドの場合:

以下の手順に従ってください。

  1. 名前flagscsvで新しいテキスト列を追加します
  2. リスト項目の編集を編集し、コンテンツWebパートを追加します。 HTMLページをコンテンツWebパートにフックします。 (HTMLページの名前をcontent.htmlとし、Siteassestsのようなライブラリにアップロードします)
  3. content.htmlを編集し、jqueryを使用して、フラグのオプションに変更イベントを追加します。複数のアイテムを選択したフラグオプションのコンマ分離値を生成し、FlagSCSVのテキストボックスに設定します。
  4. HTMLページを保存して閉じます。リストアイテムを編集するたびに、FlagSCSVも更新されます。
  5. 休憩コールの後半でFLAGSCSVフィールドを使用することができます。

シンプル..「色」という名前の選択フィールドをフィルタリングする場合は、次のように与えます。

$ filter = colorValue eq 'blue'&$ expand = color

列名に値を付属するだけです。ここ ColorValue

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top