2017-03-21 4 views
0

Matin tousREST méthode GET sur la liste SharePoint

Je suis nouveau pour se reposer, ce que je suis en train de faire est de prouver que je peux obtenir une obtenir une colonne triée (Exchange_x0020) dans une liste SharePoint, mais Je ne suis pas sûr si je mets la bonne information dans le bon format pour l'API, je reçois beaucoup de rouge dans le code Visual Studio! Voici le code:

function getListItemById(/sites/it/Tools/IT-Contracts/Lists/IT% 
20Contracts/AllItems.aspx, Currency Exchange Rates, Exchange_x0020, 
success, failure) { 
    var url = webUrl + "/_vti_bin/listdata.svc/" + "Currency Exchange Rate + "(" +Exchange_x0020 + ")"; 
    $.ajax({ 
     url: url, 
     method: "GET", 
     headers: { "Accept": "application/json; odata=verbose" }, 
     success: function (data) { 
      success(data.d); 
     }, 
     error: function (data) { 
     failure(data.responseJSON.error); 
    } 
    }); 
} 




    //Usage 

getListItemById(/sites/it/Tools/IT-Contracts/Lists/CurrencyExchangeRates/AllItems.aspx,'Tasks',2,function(taskItem){ 
console.log(taskItem.TaskName); 
}, 
function(error){ 
    console.log(JSON.stringify(error)); 
} 

Répondre

0

JavaScript général Syntaxe Problèmes

Dans la définition de votre fonction, vous devez être plus prudent avec vos noms de paramètres.

Qu'est-ce que vous avez maintenant:

function getListItemById(/sites/it/Tools/IT-Contracts/Lists/IT%20Contracts/AllItems.aspx, 
    Currency Exchange Rates, Exchange_x0020, success, failure) 

Chaque paramètre doit être valide pour nommer une variable. Les barres obliques, les espaces, les signes moins et les symboles de pourcentage ne sont pas valides dans les noms de variables.

Ce qui est plus logique:

function getListItemById(webUrl, listName, columnName, success, failure) 

La première ligne de la fonction aurait alors besoin d'être mis à jour pour utiliser les nouveaux noms de paramètres:

var url = webUrl + "/_vti_bin/listdata.svc/" + listName + "(" + columnName + ")"; 

Vous devez également faire attention à guillemets autour de vos noms de variables dans le corps de votre fonction. Il ne devrait pas y avoir de guillemet précédant pour votre variable listName (votre code dit actuellement + "Currency Exchange Rate +).

Utilisation du service Web SharePoint REST

Pour récupérer des éléments d'une liste et trier une colonne spécifique, utilisez le paramètre $orderby.

"/_vti_bin/ListData.svc/CurrencyExchangeRates?$orderby=ExchangeRate" 

Notez que le service Web REST 2010 utilise le titre de la liste et les noms d'affichage des colonnes avec des espaces supprimés, comme dans l'exemple ci-dessus. Le service Web REST 2013 vous permet d'utiliser le titre de liste actuel ou le GUID de la liste.

"/_api/web/lists/getbytitle('" + listName + "')/items?$orderby=ExchangeRate" 

Voir le SharePoint 2010 REST Interface MSDN Documentation pour plus de détails.

+0

Merci! Droite! Donc, excusez ma stupidité mais dans la fonction getListItem je n'ai pas vraiment besoin de mettre l'URL, listName etc? En dessous de ce que j'ai maintenant, ça ne retourne pas le succès ou l'échec dans la console mais je pense que je suis plus proche ... – Dazza

+0

function getListItemById (webUrl, listName, itemID, succès, échec) { var url = webUrl + "/ _vti_bin/ListData.svc/CurrencyExchangeRates? $ orderby = ExchangeRate "(" + Exchange_x0020 + ")"; $ .ajax ({ url: url, // + "/ sites/it/Outils/Contrats informatiques/Listes/IT% 20Contracts/AllItems.aspx ('+ Taux de change +')/items ("+ Exchange_x0020 +"), méthode: "GET", en-têtes: {"Accepter": "application/json; odata = verbose" }, – Dazza

+0

@Dazza Une bonne façon de tester si votre URL est construite correctement est d'essayer de naviguer directement dans votre navigateur.Si l'URL est valide, Internet Explorer l'affichera comme un flux.Si invalide, vous obtiendrez 400 Mauvaise requête (page non trouvée). '[URL du site]/_ vti_bi n/ListData.svc/ListTitle?$ orderby = ColumnDisplayName' Remplacez 'ListTitle' par le titre de votre liste (espaces supprimés) et remplacez' ColumnDisplayName' par le nom d'affichage de votre colonne (espaces supprimés). Vous ne devriez pas avoir besoin de parenthèses dans l'URL. – Thriggle