SharePointCommunity
Die deutschsprachige Community für SharePoint, Office 365 und mit Azure

Caml Where abfrage SP2010

bewertet von 0 Usern
Nicht beantwortet Dieser Beitrag hat 0 Geprüfte Antworten | 1 Antwort | 1 Follower

Ohne Rang
3 Beiträge
Verena erstellt in 4 Okt 2018 13:35

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

Top-10-Beitragsschreiber
18.829 Beiträge

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
Seite 1 von 1 (2 Elemente) | RSS