---
title: Aus der Praxis – Die View eines XsltListViewWebPart anpassen
description: Die View eines List View Webpart anzupassen, kann relativ schwierig sein. Daher finden Sie hier einen funktionierenden Ansatz zur Umsetzung.
image: https://blog.hansevision.com/hubfs/pexels-nemuel-sereti-6424586-2.jpg
---

[![HV_BechtleGroup_sRGB_Black_2025 (3)](https://blog.hansevision.com/hs-fs/hubfs/Website%20Weebly%20Bildmaterialien/Logos/HV_BechtleGroup_sRGB_Black_2025%20(3).png?width=225&height=45&name=HV_BechtleGroup_sRGB_Black_2025%20(3).png)](https://www.hansevision.com/) [Blog](https://blog.hansevision.com)

 Lösungen

 Leistungen

[Über uns](https://www.hansevision.com/hansevision.html)

 Karriere

[Kontakt](https://www.hansevision.com/kontakt.html)

[![HV_BechtleGroup_sRGB_Black_2025 (3)](https://blog.hansevision.com/hs-fs/hubfs/Website%20Weebly%20Bildmaterialien/Logos/HV_BechtleGroup_sRGB_Black_2025%20(3).png?width=163&height=32&name=HV_BechtleGroup_sRGB_Black_2025%20(3).png)](https://www.hansevision.com/) [Blog](https://blog.hansevision.com)

 Lösungen

 Leistungen

[Über uns](https://www.hansevision.com/hansevision.html)

 Karriere

Zurück

 2 Minuten Lesezeit  03.04.2018

[Tutorial](https://blog.hansevision.com/tag/tutorial) [Coding](https://blog.hansevision.com/tag/coding)

<https://twitter.com/intent/tweet?original_referer=https://blog.hansevision.com/aus-der-praxis-die-view-eines-xsltlistviewwebpart-anpassen?utm_medium=social&utm_source=twitter&url=https://blog.hansevision.com/aus-der-praxis-die-view-eines-xsltlistviewwebpart-anpassen?utm_medium=social&utm_source=twitter&source=tweetbutton&text=> <http://www.linkedin.com/shareArticle?mini=true&url=https://blog.hansevision.com/aus-der-praxis-die-view-eines-xsltlistviewwebpart-anpassen?utm_medium=social&utm_source=linkedin>

![Bild von Andreas Witt](https://blog.hansevision.com/hubfs/Theme%20Development/user-large-solid.svg)

[Andreas Witt](https://blog.hansevision.com/author/andreas-witt)

# Aus der Praxis – Die View eines XsltListViewWebPart anpassen

---

In meinen Projekten hatte ich des Öfteren die Anforderung ein List View Webpart programmatisch auf einer Seite zu platzieren. Das Einfügen des Webparts ist noch recht einfach; sobald aber die View angepasst werden muss, wird es schwieriger.

Im Internet gibt es viele Lösungsansätze dazu, die aber unter anderem schlicht weg nicht funktionieren. Daher habe ich nachfolgend den aus meiner Sicht besten Ansatz skizziert.

In der XML Webpart Definition kann der Teil, in dem die View Informationen angegeben werden einfach ignoriert werden. Der Hintergrund ist, dass beim Platzieren des Webparts auf der Seite automatisch eine versteckte View auf der referenzierten Liste erstellt wird.

```
public const string ListView =
  "<webParts Zone=\"wpz\" Index=\"2\">" +     "<webPart xmlns=\"http://schemas.microsoft.com/WebPart/v3\">" +                                      "<metaData>" +                                        "<type name=\"Microsoft.SharePoint.WebPartPages.XsltListViewWebPart, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c\" />" +                                        "<importErrorMessage>Dieses Webpart kann nicht importiert werden.</importErrorMessage>" +                                      "</metaData>" +                                      "<data>" +                                        "<properties>" +                                          "<property name=\"ListUrl\" type=\"string\">{RelativeSiteCollectionUrl}</property>" +                                          "<property name=\"ListName\" type=\"string\"></property>" +                                          "<property name=\"ChromeType\" type=\"chrometype\">Default</property>" +                                          "<property name=\"Title\" type=\"string\">{Title}</property>" +                                          "</properties>" +                                      "</data>" +                                    "</webPart>" +                                  "</webParts>";
```

 

Daher muss im ersten Schritt lediglich das Webpart auf der Seite platziert werden. Dies geschieht mit nachfolgenden C# Code mit CSOM. (Dabei werden einige Werte aus der oben definierten XML Definition durch dynamische Werte ersetzt. Daher die Platzhalter “{…}”)

 

```
 internal static WebPartDefinition PlaceWebpartByDefinition(ClientContext context, Web web, string relativePageUrl, string wpDefinition, string zoneId, int index, string title)         {             var page = web.GetFileByServerRelativeUrl(relativePageUrl);             context.Load(page);             context.ExecuteQuery();              if (page.CheckOutType != CheckOutType.Online)             {                 page.CheckOut();             }             wpDefinition = wpDefinition.Replace(WebpartDefinitions.PlaceholderTitle, title);             var wpm = page.GetLimitedWebPartManager(Microsoft.SharePoint.Client.WebParts.PersonalizationScope.Shared);             context.Load(wpm);              WebPart importingWebPart = wpm.ImportWebPart(wpDefinition).WebPart;             var wpd= wpm.AddWebPart(importingWebPart, zoneId, index);             context.Load(page);             context.Load(wpd);             context.ExecuteQuery();             return wpd;         }  internal static WebPartDefinition PlaceAllDocumentsWebpart(ClientContext context, Web web, string relativePageUrl, string wpDefinition, string zoneId, int index, string title)         {             var pagesLib = ConfigurationManager.AppSettings["SPPageLibrray"];             // Get Pages Library             List pagesLibrary = web.Lists.GetByTitle(pagesLib);             context.Load(pagesLibrary, p => p.Id, p => p.Views);             context.ExecuteQuery();              var definition = wpDefinition.Replace("{RelativeSiteCollectionUrl}", web.ServerRelativeUrl + "/" + pagesLib);             definition = definition.Replace("{listId}", pagesLibrary.Id.ToString());             definition = definition.Replace("{pageUrl}", web.ServerRelativeUrl + "/" + pagesLib + "/startpage.aspx");             definition = definition.Replace(WebpartDefinitions.PlaceholderTitle, title);              WebPartDefinition wpd = PlaceWebpartByDefinition(context, web, relativePageUrl, definition, zoneId, index, title);             return wpd;         } 
```

Nach dem Ausführen des Codes existiert eine neue, versteckte View auf der Bibliothek. Diese View muss nun im zweiten Schritt ermittelt und bearbeitet werden. Die ID der View kann über das platzierte Webpart ermittelt werden.

Hat man die View im Zugriff, können nun die Felder, die Sortierung und andere Einstellungen angepasst werden.

 

```
internal static void PlaceLatestModiefiedDocumentsWebpart(ClientContext context, Web web, string relativePageUrl, string zoneId, int index)         {             var wpTitle = "Zuletzt geänderte Dokumente";             WebPartDefinition webPartDefinition = PlaceAllDocumentsWebpart(context, web, relativePageUrl, WebpartDefinitions.ListView, zoneId, index, wpTitle);              var pagesLibName = ConfigurationManager.AppSettings["SPPageLibrray"];             // Get Pages Library to edit view             List pagesLibrary = web.Lists.GetByTitle(pagesLibName);                               context.Load(pagesLibrary, p => p.Id, p => p.Views);             context.ExecuteQuery();              string[] viewFields = { "DocIcon", "LinkFilename", "Modified" };             var listView = pagesLibrary.Views.GetById(webPartDefinition.Id);             context.Load(listView, lv => lv.ViewFields);             context.ExecuteQuery();              listView.ViewFields.RemoveAll();             foreach (var viewField in viewFields)             {                 listView.ViewFields.Add(viewField);             }              listView.ViewQuery = "<OrderBy><FieldRef Name='Modified' Ascending='False' /></OrderBy>";             listView.RowLimit = 10;             listView.Update();             context.ExecuteQuery();         } 
```

Ich hoffe der Code kann euch helfen!

 

 

![Bild von Andreas Witt](https://blog.hansevision.com/hubfs/Theme%20Development/user-large-solid.svg)

[Andreas Witt](https://blog.hansevision.com/author/andreas-witt) [Alle Artikel des Autors](https://blog.hansevision.com/author/andreas-witt)

### Ähnliche Blog-Artikel

![](https://blog.hansevision.com/hs-fs/hubfs/Theme%20Development/hansevision-newsletter.png?width=410&name=hansevision-newsletter.png)

### Mit unserem HanseVision Update sind Sie immer gut informiert über alle Themen rund um moderne Zusammenarbeit, Lösungen und Tools, Referenzen und Aktionen.

[![Jetzt zum Newsletter anmelden](https://hubspot-no-cache-eu1-prod.s3.amazonaws.com/cta/default/24882854/c769ef8c-5eed-48ae-ada2-7fc72d656a50.png)](https://hubspot-cta-redirect-eu1-prod.s3.amazonaws.com/cta/redirect/24882854/c769ef8c-5eed-48ae-ada2-7fc72d656a50)

Updates & Aktionen

Versand alle 4-6 Wochen

Trends & aktuelle Entwicklungen

![](https://blog.hansevision.com/hs-fs/hubfs/Theme%20Development/hansevision-newsletter.png?width=250&height=250&name=hansevision-newsletter.png)

[![Jetzt zum Newsletter anmelden](https://hubspot-no-cache-eu1-prod.s3.amazonaws.com/cta/default/24882854/c769ef8c-5eed-48ae-ada2-7fc72d656a50.png)](https://hubspot-cta-redirect-eu1-prod.s3.amazonaws.com/cta/redirect/24882854/c769ef8c-5eed-48ae-ada2-7fc72d656a50)

<https://www.youtube.com/channel/UCZQCgsNj4irQw3Ozhqf3YaA?sub_confirmation=1> <https://www.linkedin.com/company/5723266>

[Datenschutzerklärung](https://www.hansevision.com/datenschutzerklaerung.html)

[Impressum](https://www.hansevision.com/impressum-688471.html)

[AGB](https://www.hansevision.com/uploads/4/1/9/3/41931735/hansevision_agb_der_hansevision_gmbh_stand_31.03.2020.pdf)

[Telefon: +49 (40) 2880 7590 - 0](tel:+4940288075900)

 Adresse: Atlantic Haus, Bernhard-Nocht-Strasse 113, 20359 Hamburg

[Cookie-Richtlinien](https://www.hansevision.com/cookie-richtlinie.html)

 Cookie-Einstellungen

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Andreas Witt",
    "url" : "https://blog.hansevision.com/author/andreas-witt"
  },
  "dateModified" : "2023-04-25T07:17:07.341Z",
  "datePublished" : "2018-04-03T22:00:00.000Z",
  "headline" : "Aus der Praxis – Die View eines XsltListViewWebPart anpassen",
  "image" : [ "https://blog.hansevision.com/hubfs/pexels-nemuel-sereti-6424586-2.jpg" ],
  "mainEntityOfPage" : {
    "@id" : "https://blog.hansevision.com/aus-der-praxis-die-view-eines-xsltlistviewwebpart-anpassen",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://blog.hansevision.com/hubfs/HanseVision_sRGB_Black.png"
    },
    "name" : "HanseVision GmbH"
  }
}
```