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.




Spalten einer Wiki-Seitenbibliothek mit Javascript auslesen

Unbeantwortet Dieser Beitrag hat 6 Antworten

Ohne Rang
17 Beiträge
Pyro erstellt 30 März 2016 13:04
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich lese Momenten einige Spalten einer Liste mit dem unten stehenden Javascript-Code aus. Anstatt eine Liste auszulesen würde ich aber gerne direkt einige Spalten einer Wiki-Seitenbibliothek auslesen.

Geht sowas?

Mein erster Versuche war, die Zeile:

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

zu ersetzten, durch etwas in der Art:

var oList = clientContext.get_web(). ... /SitePages/Forms/AllPages

Das hat aber nicht funktioniert

 

   

<input type="button" value="Auslesen" onclick="javascript:retrieveListItems();"/>
</div>


<script type="text/javascript">
   
    function retrieveListItems() {
        var clientContext = new SP.ClientContext('/sites/MEINESEITE');
        var oList = clientContext.get_web().get_lists().getByTitle('Testliste');
       
        var camlQuery = new SP.CamlQuery();
        camlQuery.set_viewXml(
           '<View><Query><Where><Leq>' + '<FieldRef Name=\'ID\'/><Value Type=\'Number\'>100</Value>' + '</Leq></Where></Query><RowLimit>50</RowLimit></View>'
        );
        this.collListItem = oList.getItems(camlQuery);

        clientContext.load(collListItem, 'Include(_x0061_x79, _x0075_r33, _x0079_dx0, j5nt, r49k)');
        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();
            var ID = oListItem.get_item('_x0061_x79');
            if (ID == 1){
                listItemInfo =
                'SeitenID: ' + oListItem.get_item('_x0061_x79') +
                '\nInfo1: ' + oListItem.get_item('_x0075_r33') +
                '\nInfo2: ' + oListItem.get_item('_x0079_dx0') +
                '\nInfo3: ' + oListItem.get_item('j5nt') +
                '\nInfo4: ' + oListItem.get_item('r49k');
                alert(listItemInfo.toString());
            }

        }
    }

    function onQueryFailed(sender, args) {
        alert('Request failed. :-( ' + args.get_message() +
        '\n' + args.get_stackTrace());
    }

</script>

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 30 März 2016 13:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Den Code habe ich jetzt nicht angeschaut, aber auch die Wikibibliothek ist eine ganz normale Liste und Du kannst sie behandeln wie jede andere auch. Wo klemmt's denn?

[quote user="Pyro"]var oList = clientContext.get_web(). ... /SitePages/Forms/AllPages[/quote]

Warum nicht einfach sowas:
...get_lists().getByTitle("Site Pages")

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
17 Beiträge
Pyro Als Antwort am 30 März 2016 15:04
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also wenn ich es mit clientContext.get_web().get_lists().getByTitle("Site Pages") bzw. SitePages oder Site_x0020_Pages versuche, bekomme ich immer die Fehlermeldung:

Request failed. Die Liste 'Site Pages' ist in der Website mit der URL 'MEINESEITE' nicht vorhanden.
undefined

[quote user="Andi Fandrich"]Den Code habe ich jetzt nicht angeschaut, aber auch die Wikibibliothek ist eine ganz normale Liste und Du kannst sie behandeln wie jede andere auch. Wo klemmt's denn?[/quote]

Das Problem ist eigentlich nur, wie ich auf diese Wikibibliothek verweisen kann, alles andere Funktioniert so wie es soll. Es geht also im Prinzip nur um diese Zeile:

var oList = clientContext.get_web().get_lists().getByTitle("Site Pages");

Bei einer benutzerdefinierten Liste, die ich als App hinzugefügt hab funktioniert das auch, nur eben nicht bei der Wikibibliothek.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 30 März 2016 15:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Und wie heißt die Bibliothek genau? Mit dem richtigen Namen muß das gehen. Du kannst es auch mit der ID versuchen, die Du aus der URL bekommst, wenn Du z.B. in die Library Settings gehst (muß dekodiert werden).

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
17 Beiträge
Pyro Als Antwort am 30 März 2016 16:00
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ahh der Name der Bibliothek ist Websiteseiten und nicht SitePages,  hab es immer mit SitePages probiert, weil der name in der URL steht.

 

Jetzt geht es auch, danke :D

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 30 März 2016 16:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ja, das ist wirklich der sichtbare Name. Und deshalb auch gleich ein ACHTUNG: wenn Dein Script in mehreren Sprachen funktionieren soll, geht das so nicht. Eben weil dieselbe Bibliothek in englisch Site Pages heißt. Da hilft nur die ID zu verwenden oder alle Listen in einer Schleife durchzugehen und dann über die URL zu gehen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
17 Beiträge
Pyro Als Antwort am 30 März 2016 17:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok, danke für den Tipp. Es wird warscheinlich ausreichen, wenn es in deutsch funktionier, aber ich werden dann trotzdem liber die ID nehmen.