8

Rest Call から結果をフィルタリングしようとしています。

$.ajax({
    type: "GET",
    headers: {
        "Accept": "application/json;odata=verbose"
    },
    dataType: "JSON",
    url: _spPageContextInfo.webServerRelativeUrl + "/_api/lists/getByTitle('Contacts')/items?$select=Title,Id&$startswith('Title','" + request.term + "') eq true",
    success: function (data) {
    },
    error: function (ex) {
    }
});

連絡先リストで、文字列で始まるアイテム、または文字列をどこかに含むアイテムのタイトルと ID を取得しようとしています。たとえば、誰かの名前です。

substringofでも試しました:

"/_api/lists/getByTitle('Contacts')/items?$select=Title,Id&$substringof(" + request.term + ",'Title') eq true"

これも同じ結果をもたらします。

リストのすべてのリスト項目が表示され、フィルタリングは適用されません。ここを見た後、残りの URL を作成します SharePoint 2013 REST サービスを使用したプログラミング そこに与えられたスキーマのように、Url は問題ないように見えますが、そうではないようです :)

編集:

OData Uri Conventions で like を適用すると$filter、次のエラーが発生します。

{"error":{"code":"-1, Microsoft.SharePoint.SPException","message":{"lang":"en-US","value":"The query is not valid."}}}

次のクエリ文字列で試しました:

_api/lists/getByTitle('Contacts')/items?$select=Title,Id&$filter=substringof(m,'Title') eq true

_api/lists/getByTitle('Contacts')/items?$select=Title,Id&$filter=substringof('m','Title') eq true

_api/lists/getByTitle('Contacts')/items?$select=Title,Id&$filter=substringof('m',Title) eq true
4

5 に答える 5

17

「eq true」を削除すると、正しい結果を返す substringof を使用してフィルターを取得できました。

クエリ文字列の 1 つを使用すると、次のように動作するはずです。

_api/lists/getByTitle('Contacts')/items?$select=Title,Id&$filter=substringof('m',Title)

他の関数はチェックしていませんが、少なくとも、startwith 関数でも同じことが起こります。

于 2013-08-08T13:27:24.130 に答える
0

正しい URI 規則については、http://www.odata.org/documentation/odata-v2-documentation/uri-conventions/を確認してください。

する必要があります

/_api/lists/getByTitle('Contacts')     
/items?$select=Title,Id&$filter=substringof(" + request.term + ",'Title') eq true"

したがって、 $filter が含まれている

于 2013-04-19T14:34:47.853 に答える