OData substringof ou startswith le retour de tous les éléments
Je suis en train de filtrer les résultats de ma recherche à partir d'un Appel Reste.
$.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) {
}
});
Dans ma Liste de Contacts, je suis en train de récupérer le Titre et l'Id pour les Articles qui commencent avec une Chaîne ou qui ont la Chaîne, quelque part en elle, ici par exemple c'est le Nom de quelqu'un.
J'ai aussi essayé avec substringof:
"/_api/lists/getByTitle('Contacts')/items?$select=Title,Id&$substringof(" + request.term + ",'Title') eq true"
qui offre également le même résultat.
Il me donne tous les Éléments de la Liste à partir de la Liste et aucun Filtrage n'est appliqué.
- Je construire l'Url pour le Reste après à regarder ici Programmation à l'aide de SharePoint 2013 service REST
Comme le Schéma donné, là, je pense que l'Url semble ok, mais il ne semble donc 🙂
Edit:
L'application de la $filter
comme dans le OData les Conventions de l'Uri me donne l'erreur suivante:
{"error":{"code":"-1, Microsoft.SharePoint.SPException","message":{"lang":"en-US","value":"The query is not valid."}}}
Essayé avec la suite de Chaînes de Requête:
_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
Vous devez vous connecter pour publier un commentaire.
J'ai réussi à obtenir le filtre avec de l'substringof de retourner les résultats corrects lorsque j'ai enlevé le "eq true".
À l'aide de l'un de vos chaînes de requête, il devrait fonctionner comme ceci:
Je n'ai pas vérifié toutes les autres fonctions, mais au moins, la même chose arrive avec startswith fonction.
Pour tous ceux qui cherchent à cette question, je peux vous annoncer que
EST de travailler pour moi.
J'ai essayé votre requête URI sur mon point de terminaison et d'appliquer quelques modifications:
- Le deuxième paramètre de la sous-chaîne ne doit pas être une chaîne de caractères, alors j'ai enlevé le apostropes
Après ce que j'obtienne des résultats:
http://jaydata.org/examples/Northwind.svc/Products?$sélectionnez=Produit_id,Produit_nom&$filtre=substringof('CH',Produit_nom)
Mon point de terminaison est la norme de Service de Données WCF, et le filtre est efficace.
Si la modification de l'URI renvoie tous les enregistrements, ce serait un SherePoint truc, je suppose. Qu'advient-il si vous mettez 'zzz' ou un chaîne de caractères aléatoires dans le filtre?
Vérifier http://www.odata.org/documentation/odata-v2-documentation/uri-conventions/ pour la bonne uri de la convention.
Devrait être
Donc, avec le filtre $inclus
Aussi, l'contient méthode fonctionne et j'ai eu une meilleure compatibilité avec elle. La syntaxe est la suivante: