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.




Bildbibliothek in anderen Verzeichnis auslesen

Geprüfte Antwort Dieser Beitrag hat 14 Antworten

Ohne Rang
69 Beiträge
Luka erstellt 17 Juli 2015 14:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Community, ich versuche jetzt vergebens seit 2 Tagen den Inhalt einer Bildbibliothek auszulesen.
Mein Ansatz ist der hier:

 

<script type="text/javascript"> 

var clientContext;

var website;

 

// Make sure the SharePoint script file 'sp.js' is loaded before your

// code runs.

SP.SOD.executeFunc('sp.js', 'SP.ClientContext', sharePointReady);

 

// Create an instance of the current context.

function sharePointReady() {

    clientContext = SP.ClientContext.get_current();

    website = clientContext.get_web();

 

    clientContext.load(website);

    clientContext.executeQueryAsync(onRequestSucceeded, onRequestFailed);

}

function onRequestSucceeded() {

    alert(website.get_url());

 

var siteUrl = 'http://spsrv/testprojekt/Test%20Einstellungen/';

var listId = 'dd13b259-cf57-4c00-aaa0-864c037ed89c'; // the list guid here

var listItemId = 1;

 

var ctx = new SP.ClientContext(siteUrl);

var web = ctx.get_web();

var list = web.get_lists().getById(listId);

var listItem = list.getItemById(listItemId);

listItem.set_item('Title', 'new title');

listItem.update();

ctx.executeQueryAsync(

    function() { alert('all ok!'); },

    function(sender, args) { alert('ERROR! ' + args.get_message()); });

 

}

function onRequestFailed(sender, args) {

    alert('Error: ' + args.get_message());

}

</script> 

 

 

jedoch kann ich damit nur den Titel eines Objektes ändern aber nicht den Titel auslesen.

Ich hoffe ihr könnt mir helfen...Vielen Dank 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 17 Juli 2015 14:13
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Lasse die Zeile listItem.set_item('Title', 'new title'); und das update() darunter weg. Damit setzt Du einen neuen Titel.

Ersetze stattdessen das alert('all ok!'); durch alert(listItem.get_item('Title'));

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
69 Beiträge
Luka Als Antwort am 17 Juli 2015 14:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

danke erstmal habe das ganze getestet...aber die Konsole vom Chrome gibt nen Fehler zurück

Uncaught Error: Die Eigenschaft oder das Feld wurde nicht initialisiert. Es ist keine Anforderung erfolgt, oder die Anforderung wurde nicht ausgeführt. Ggf. muss eine ausdrückliche Anforderung erfolgen. 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 17 Juli 2015 14:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hab ich vergessen. Da fehlt ein ctx.load(listItem); vor dem executeQueryAsync

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
69 Beiträge
Luka Als Antwort am 17 Juli 2015 14:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wunderbar und Danke Andi funktioniert alles :3

Ohne Rang
69 Beiträge
Luka Als Antwort am 20 Juli 2015 08:06
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi
Kannst du mir vlt. noch erklären wie ich alle Title wiedergeben kann die es gibt? 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 20 Juli 2015 08:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Arbeite Dich hier durch: https://msdn.microsoft.com/en-us/library/office/JJ163201.aspx

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
69 Beiträge
Luka Als Antwort am 20 Juli 2015 10:13
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Habe mich jetzt etwas eingelesen und meinen Code folgendermaßen geändert um möglichst erstmal die ersten Listenelemente anzuzeigen. 
Nur i-wo muss noch ein Fehler stecken wo wieder der "clientContext" geladen werden muss.

Code:

var siteUrl = '/testprojekt/Test%20Einstellungen/';

retrieveListItems(siteUrl);

function retrieveListItems(siteUrl) {

    var clientContext = new SP.ClientContext(siteUrl);

    var oList = clientContext.get_web().get_lists().getByTitle('Pictures');

    var camlQuery = new SP.CamlQuery();

    camlQuery.set_viewXml('<View><RowLimit>100</RowLimit></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();

        listItemInfo += '\nID: ' + oListItem.get_id() + 

            '\nTitle: ' + oListItem.get_item('Title') + 

            '\nBody: ' + oListItem.get_item('Body');

    }

    alert(listItemInfo.toString());

}

function onQueryFailed(sender, args) {

    alert('Request failed. ' + args.get_message() + 

        '\n' + args.get_stackTrace());

 

 

 

Fehlermeldung in Konsole:(heißt das wirklich ich muss an einer Stelle nochmal den clientContext laden?)
Uncaught Error: Die Eigenschaft oder das Feld wurde nicht initialisiert. Es ist keine Anforderung erfolgt, oder die Anforderung wurde nicht ausgeführt. Ggf. muss eine ausdrückliche Anforderung erfolgen. 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 20 Juli 2015 10:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dein Code wird sofort ausgeführt, wenn er vom Browser erreicht wird und da sind eben noch nicht alle SharePoint-Scripte verfügbar. Mache es wie oben bei Deinem anderen Code.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
69 Beiträge
Luka Als Antwort am 20 Juli 2015 10:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Folgende Fehlermeldung entsteht

Uncaught TypeError: Cannot read property 'apply' of undefined

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 20 Juli 2015 10:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

In Deinem Code steht nirgendwo apply. Benutze einen Debugger, um selbst mehr herauszufinden. Ich kann leider (oder zum Glück?) nicht hellsehen...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
69 Beiträge
Luka Als Antwort am 20 Juli 2015 13:29
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Vielen Dank  erstmal. Hab nun alles nochmal durchgeguckt um Fehler zu finden nochmal die Seite genau durchgelesen die du geposted hast, ja beim Debuggen ist mir eigentlich auch nur aufgefallen das sich der Fehler nicht in der Datei befindet....sehr mysteriös...!

Kann ich mein als erstes geposteten Code so umbauen das ich in einer schleife so viele wiedergebe oder in einer variable speicher wie ich benötige?
Das wäre vielleicht einfacher...

 

Freundliche Grüße Luka

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 20 Juli 2015 13:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Luka"]beim Debuggen ist mir eigentlich auch nur aufgefallen das sich der Fehler nicht in der Datei befindet[/quote]

Normalerweise kannst Du ihn dann auch ignorieren. Die Scripte von Microsoft haben durchaus auch Fehler.

[quote user="Luka"]Kann ich mein als erstes geposteten Code so umbauen das ich in einer schleife so viele wiedergebe oder in einer variable speicher wie ich benötige?[/quote]

Klar kannst Du.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
69 Beiträge
Luka Als Antwort am 20 Juli 2015 13:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Gut umgeschrieben in eine schleife sieht es ja so aus:

function onRequestSucceeded() {

 

var siteUrl = 'http://spsrv/testprojekt/Test%20Einstellungen/';

    var listId = 'dd13b259-cf57-4c00-aaa0-864c037ed89c'; // the list guid here

for(var listItemId = 1; listItemId <= 10; listItemId++)

{

var ctx = new SP.ClientContext(siteUrl);

var web = ctx.get_web();

var list = web.get_lists().getById(listId);

var listItem = list.getItemById(listItemId);

ctx.load(listItem);

ctx.executeQueryAsync(

function() { alert(listItem.get_item('Title')); },

 

function(sender, args) { alert('ERROR! ' + args.get_message()); });

}

}

function onRequestFailed(sender, args) {

    alert('Error: ' + args.get_message());

}

 

 

Nur leider kommt wieder eine Fehlermeldung nur verstehe ich das nicht bei einen einzigen Element geht alles und bei mehreren passiert nichts und er gibt mir als alert nur "null" wieder.

Die Fehlermeldung ist auch wieder die altbekannte.:

Uncaught Error: Die Eigenschaft oder das Feld wurde nicht initialisiert. Es ist keine Anforderung erfolgt, oder die Anforderung wurde nicht ausgeführt. Ggf. muss eine ausdrückliche Anforderung erfolgen.

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 20 Juli 2015 14:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Tut mirleid, aber ich habe nicht die Zeit Deinen ganzen Code zu analysieren. Allerdings hast Du irgendwas durcheinandergebracht. Sieht aus, als ob die onRequestSucceeded der Einstiegspunkt wäre.

Versuche mal den Code in die Funktion SharePointReady aus Deinem ersten Post zu packen.

Viele Grüße
Andi
af @ evocom de
Blog