Vaak is het ideaal om een lijst op de hoofdniveau van een sitecollectie te hebben en deze lijst op meerdere plekken terug te laten komen. Wellicht met verschillende weergaves/filters.
Door de standaard gedrag van SharePoint kun je een lijst alleen maar in de site gebruiken waar het gemaakt is. Het gekke is dat SharePoint het wel ondersteund als je maar weet welke aanpassingen je moet doorvoeren om de lijst beschikbaar te krijgen.
Exporteren
Als eerste moet er voor gezorgd worden dat de lijst beschikbaar komt als web onderdeel. Dit kan alleen gedaan worden door de lijst als web onderdeel te exporteren naar een “.webpart” bestand en deze weer te importeren. Als je het web onderdeel bewerkt zie je geen mogelijkheid om het web onderdeel te exporteren:
Hiervoor moet je de pagina opslaan en openen in SharePoint designer en daar de pagina bewerken. In deze pagina zie je het web onderdeel staan als “XsltListViewWebPart”. In deze regel moet je de “Exportmode” bijplaatsen met als waarde “All”:
Sla de pagina op, ververs de pagina binnen de browser en bewerk de pagina opnieuw. Nu heb je wel de export mogelijkheid:
Exporteer het bestand en sla het op een locatie op waar je later weer bij kan.
Web referentie
Nu we het web onderdeel hebben geëxporteerd moet alleen nog aangegeven worden waar de lijst vandaan komt zodat het web onderdeel compleet is. Open het export bestand binnen een tekst bewerker zoals kladblok, en ga op zoek naar het kenmerk (property) WebId. Hier zul je allemaal nullen zien staan wat betekend dat de lijst gevonden kan worden op de huidige site, maar dit moeten we veranderen naar een ID waar de lijst wel gevonden kan worden:
De ID van de site kan op verschillende manier gevonden worden als je een on premises omgeving hebt, maar voor Office 365 heb je deze methodes niet tot je beschikking. Hiervoor is een stukje javascript nodig die gebruikt maakt van de client object model:
var context = new SP.ClientContext.get_current();
var currentWeb = context.get_web();
context.load(currentWeb);
context.executeQueryAsync(function(){console.log(currentWeb.get_id())}, function(){});
Deze code kan uitgevoerd worden in de console van de browser en levert een nummer op die de ID van web weergeeft:
Kopieer dit nummer en plaats dit nummer i.p.v. de nullen in de webID van het export bestand. Sla het export bestand op
Importeren
Nu het export bestand helemaal volledig is kan het bestand worden toegevoegd aan de pagina die we willen, ook op sub sites. Navigeer naar een sub site en bewerk de pagina die je wilt voorzien van het web onderdeel:
Upload je export bestand:
Als het bestand is geüpload moet opnieuw worden aangeven dat je een web onderdeel wilt toevoegen. In dat overzicht zal je dan je toegevoegde web onderdeel zien:
Voeg dit web onderdeel toe en configureer het web onderdeel verder af!
Superbeschrijving, thanks!