SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Caml Where abfrage SP2010

Unbeantwortet Dieser Beitrag hat 1 Antworten

Ohne Rang
3 Beiträge
Verena erstellt 4 Okt. 2018 13:35
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

ich hab im SP Designer ein Script in JS erstellt, er soll mir die Hersteller per DropDown Menü anzeigen, was auch funktioniert, er zeigt mir alle Hersteller an, doch wenn ich einen auswähle und auf suchen gehe, passiert nichts. Ich geh davon aus, das etwas in meiner Where-Clausel nicht stimmt. Kann mir jemand behilflich sein?

 

 

function formInit(){
loadHerstellerInit();

initFields();

}

function loadHerstellerInit(){

 var context=new SP.ClientContext.get_current("/lva/firmenportal/verkaeufer");
 var list=context.get_web().get_lists().getByTitle("hersteller");
 var query=new SP.CamlQuery();
 query.set_viewXml("<View><Query><OrderBy><FieldRef Name=\"Hersteller\"/></OrderBy></Query><ViewFields><FieldRef Name=\"ID\"/><FieldRef Name=\"Hersteller\"/></ViewFields></View>");

 var hersteller=list.getItems(query);
 context.load(hersteller);

 context.executeQueryAsync(Function.createDelegate(this, function(){loadHerstellerInitErfolg(hersteller);}),
        Function.createDelegate(this,function(){alert("Kann hersteller nicht laden");}));

function loadHerstellerInitErfolg(hersteller){

// Vorheriege Auswahl merken
 var preselect = $('#selHersteller').val();
 $('#hersteller').empty();
 
 var Eintraege=hersteller.getEnumerator();
 $('#hersteller').append('<option>Alle Hersteller</option>');
 
 
 while(Eintraege.moveNext()){
 var Eintrag=Eintraege.get_current();


 if(Eintrag.get_item('ID') == preselect){
  $('#hersteller').append('<option value="' + Eintrag.get_item('ID') + '" selected>' + Eintrag.get_item('Hersteller') + '</option>');
 }
 {$('#hersteller').append('<option value="' + Eintrag.get_item('ID') + '">' + Eintrag.get_item('Hersteller') + '</option>');}
 
 }
}

 

// Auswahl Hersteller
function herstellerSelect(){

 $('#selHersteller').val($('#hersteller option:selected').text());
}

// Where-Klausel
 function createWhere(){

 var where ='';
 var first = true;

if($('#hersteller').prop("selectedIndex") > 0){
  where += "<Eq>" +
      "<FieldRef Name=\"Hersteller\"/>" +
      "<Value Type=\"Text\">" + $('#hersteller option:selected').text() + "</Value>" +
     "</Eq>";
  if(first == false){ where = "<And>" + where + "</And>";}
  first = false;
 }

// Where-Klausel abschließen
 if(where > ""){ where="<Where>" + where + "</Where>";}
 else{where = " ";}
 
 $('#camlWhere').val(where);

}

 


function escaping(Text){ return (Text + "").split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;").split("\"").join("&quot;").split("'").join("&apos;");}

function unescaping(Text){alert(Text); return (Text + "").split("&lt;").join("<").split("&gt;").join(">").split("&quot;").join("\"").split("&apos;").join("'").split("&amp;").join("&");

 

function main(){

ExecuteOrDelayUntilScriptLoaded(formInit,"SP.js");
 

 
_spBodyOnLoadFunctionNames.push("main");

 

 

 

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 4 Okt. 2018 17:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Kannst Du das bitte auf die eigentliche CAML-Query reduzieren? Vermutlich hat hier niemand Zeit und Lust sich in Deinen ganzen Code reinzudenken.

Vielleicht hilft Dir auch schon das, was ich hier geschrieben habe dazu, wie die Where-Bedingung aufgebaut sein muß: https://andifandrich.wordpress.com/2010/12/03/caml-abfragen-in-sharepoint/

Viele Grüße
Andi
af @ evocom de
Blog