2017-07-13 4 views
0

J'ai créé une requête caml pour extraire des données dans l'application sharepoint.J'ai utilisé la clause where dans where.J'ai pas les données au moment de l'exécution de cette requête parce que "#" est préréglé dans le début de la valeur d'entrée (#userdetails). Comment résoudre ce problème S'il vous plaît aider.Problème de symbole # dans la requête caml

Requête:

<Where> 
    <Contains> 
     <FieldRef Name='FileRef' /> 
     <Value Type='Text'>#userdetails</Value> 
    </Contains> 
</Where> 
+0

Pouvez-vous s'il vous plaît coller de CAML que vous utilisez? – jpussacq

+0

# Détails de l'utilisateur

+0

Quelle colonne de type sharepoint contient les détails de l'utilisateur? – jpussacq

Répondre

1

Je ne sais pas pourquoi votre code ne fonctionne pas quand il est # dans votre valeur d'entrée dans la requête Caml.

Mais Reportez-vous ci-dessous code qui fonctionne parfaitement pour moi.

function retrieveListItems() { 

    var clientContext = new SP.ClientContext.get_current(); 
    var oList = clientContext.get_web().get_lists().getByTitle('TestList'); 

    var camlQuery = new SP.CamlQuery(); 
    camlQuery.set_viewXml('<View><Query><Where><Contains><FieldRef Name="Title" /><Value Type="Text">#rohit</Value></Contains></Where></Query></View>'); 
    this.collListItem = oList.getItems(camlQuery); 

    clientContext.load(collListItem); 

    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed)); 

} 

function onQuerySucceeded(sender, args) { 

    var listItemInfo = ''; 

    var listItemEnumerator = collListItem.getEnumerator(); 
    while (listItemEnumerator.moveNext()) { 
     var oListItem = listItemEnumerator.get_current(); 
     alert(oListItem.get_item('Title')); 
    } 

    alert(listItemInfo.toString()); 
} 

function onQueryFailed(sender, args) { 
    debugger; 
}