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.




javascript: executeQueryAsync mit undefined parameter im msdn-Beispielcode

Geprüfte Antwort Dieser Beitrag hat 2 Antworten

Ohne Rang
242 Beiträge
Peter Oswald erstellt 11 Sept. 2013 17:01
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

bei meinem ersten Versuch, ListItems mit JavaScript zu verwurschten, habe ich mir naiverweise dieses MSDN-Beispiel vorgenommen

http://msdn.microsoft.com/de-de/library/ee535262(v=office.14).aspx

und lasse den Code in der CustomAction meiner Elements.xml laufen

function retrieveWebSite() {
    var clientContext = new SP.ClientContext('/sites/MySiteCollection');
    this.oWebsite = clientContext.get_web();

    clientContext.load(oWebsite, 'Title');

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

function onQuerySucceeded() {
    alert('Title: ' + this.oWebsite.get_title());
}
   
function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

Das Resultat verwirrt mich, denn nachdem der Browser auf seiner Seite lapidar sein typisches "Fehler auf der Seite" meldete und ich den Script-Debugger anwarf, stehe, nein sitze ich vor der Fehlermeldung: 

"Sys.ArgumentUndefinedException: Der Wert darf nicht undefiniert sein. Parametername: method".

 Offenbar scheitert das Registrieren der Delegaten des executeQueryAsync-Aufrufs. Aber warum?

VG.

P.

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 11 Sept. 2013 17:11
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Leider stehen auf MSDN auch Fehler...

Das ganze Script funktioniert nur, wenn es innerhalb eines übergeordneten Objekts eingebaut wird, weil sonst der "this"-Scope nicht stimmt. Du kannst Dir aber das ganze Geraffel mit Function.createDelegate() sparen und einfach nur den Funktionsnamen notieren. Also so:

executeQueryAsync(onQuerySúcceeded, onQueryFailed);

Übrigens wird die onQuerySucceeded so auch nicht funktionieren, weil this.oWebsite auf die Art nicht bekannt ist.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
242 Beiträge
Peter Oswald Als Antwort am 12 Sept. 2013 07:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Prima, funkt. Vielen Dank für die Unterstützung.