SharePoint 2013 ClientContext : Comment faire pour SUPPRIMER des éléments de la liste par de MULTIPLES CONDITION de filtre?
En utilisant SP.ClientContext
à partir de Javascript fin, ci-dessous le code que j'ai utilisé pour "mise à JOUR" d'un élément de liste. Tout simplement:
var clientContext = new SP.ClientContext( siteURL );
spList = clientContext.get_web().get_lists().getByTitle( myListName );
this.spList_ExistingItem = spList.getItemById( itemID );
spList_ExistingItem.set_item( 'FullName', myFullName );
spList_ExistingItem.set_item( 'Age', myAge );
spList_ExistingItem.update();
clientContext.executeQueryAsync(succeeded_handler, fail_handler);
Cela me permet de update
un élément de la liste en interrogeant par UNE condition qui est: getItemById(itemID)
ici.
Maintenant, disons que je veux supprimer n'importe quel élément de qui est:
- Age = 30
- Pays = NOUS
Alors comment dois-je faire une telle requête avec plusieurs conditions. Et puis, même pour SUPPRIMER s'il vous plaît?
Mis à JOUR
En fonction de la réponse ci-dessous, j'ai trouvé le RESTE de l'API est plus facile et plus propre à utiliser pour le Client/Javascript fin, comparé à d'otite chronique. (Alors, bien sûr, j'ai changé tous mes codes pour le RESTE de l'API déjà fait du chemin.)
Donc la conclusion est, je suggère l'utilisation de l'API REST plutôt que d'otite chronique (SP.ClientContext).
Merci! 🙂
OriginalL'auteur | 2015-07-16
Vous devez vous connecter pour publier un commentaire.
Cela peut être fait de deux façons différentes, soit par le biais d'otite chronique/JSOM ou via le SharePoint API REST. Puisque vous êtes à l'aide de l'otite chronique/JSOM modèle dans votre question, je ne vais vous montrer comment c'est fait à l'aide de cette méthode.
L'aide d'otite chronique/JSOM
De filtre
SP.ListItem
's sur plusieurs conditions, il n'existe pas une seule des méthodes qui prennent les arguments de plusieurs champs de filtrage. Au lieu de cela, vous devrez recourir à l'aide d'une requête CAML pour spécifier les éléments de la liste que vous voulez, comme ci-dessous.À l'aide de SharePoint API REST
Cette méthode suppose que vous utilisez jQuery pour être en mesure de faire une simple
$.ajax()
des appels et l'utilisation de la promesse fonctionnalité, car vous pourriez avoir de multiples éléments à supprimer. Il suppose également que vous comprend comment vous pouvez utiliser jquery différés objets à la chaîne asynchrone fonctions à exécuter en séquence.L'idée est simple à
Note de ce que vous pourriez avoir à modifier le RESTE de l'appel api pour correspondre à vos colonnes. Suffit d'utiliser le navigateur ou le Facteur de vérifier que votre demande est correcte.
Quelques sources utiles
jQuery Différée objet
Les opérations CRUD sur les éléments de liste avec SharePoint api REST
Uncaught Sys.InvalidOperationException: Sys.InvalidOperationException: The collection was modified. Enumeration operation may not execute.
J'ai mis à jour ma réponse avec un correctif qui nous l'espérons œuvres. Le problème est qu'il modifie le tableau d'origine lors de l'énumération avec un agent recenseur. Un en arrière pour la boucle doit résoudre. J'ai également ajouté une méthode qui peut être utilisé avec le RESTE de l'api, mais c'est un peu plus difficile si vous n'êtes pas habitué à cela.
Merci, je commutées (et) essayé avec l'API REST (ce qui semble plus propre), puis ça marche!
En tant que recommandation, je serais toujours essayer d'utiliser l'API REST plus de l'otite chronique/JSOM modèle. Il pourrait ne pas avoir toutes les caractéristiques (encore), mais il est plus facile d'écrire un code propre. Aussi, je vous suggère de regarder dans certaines Promesses/A+ les bibliothèques, à l'instar de BlueBird, ce qui le rend beaucoup plus facile et mieux que d'utiliser jQuery native deferreds!
OriginalL'auteur Daniel B