简体   繁体   中英

Add a WebPart to a publishing page layout

I've been trying to figure out a way to add a web part onto a page layout. Whenever I try to add a web part zone or web part via the menus in SharePoint Designer, nothing happens. The web part I selected is highlighted blue, but nothing happens.

I have been trying to add the .webpart code on the .aspx page layout with zero luck.

<WebPartPages:WebPartZone>
    <ZoneTemplate>
        .webpart code in here! 
    </ZoneTemplate>
</WebPartPages:WebPartZone>

The above just shows the web part zone, and the ability to add a web part, but doesn't show my web part.

I've tried placing the code outside the Zone Template and the WebPartZone , but I typically just get everything between the property tags displaying as text.

You cannot add the codes to get your webpart embeded on a page , you have to open the page layout in a designer and drop the webpart on that specific area - there may not be anyother work around for this

Regards Arjun

SharePoint was not updated to support creating the snippet of code to add the WebPart to the Page Layout like it is possible with old fashioned WebParts.

Even when inserted in the Page Layout .html file, it is stripped out when the corresponding .aspx file is generated.

We found a workaround which is far from ideal but works:

  • Edit your Page Layout as you would normally in HTML
  • Add a WebPart zone where you would like to see the WebPart
  • Save the HTML and let SharePoint generate the aspx file
  • Manually edit the aspx file -- don't use SharePoint Designer, as it will strip out what you added -- with a plain text editor and insert the code from the webpart definition (the XML file)
  • Save the aspx and when you create a page using the page layout, your SPFx webpart should be there

Note that for the WebParts parameters, it is stored as a JSON structure encoded in HTML. To figure out how to setup default parameters in the inserted WebPart, insert it into a regular page manually and look at what has been generated in the aspx file. Then find the long line that has the encoded JSON structure and copy it back to your edited aspx file.

Finally, never edit/save your page layout HTML file since it ewill then simply override your changes. I would keep a copy of your edited aspx file just in case!

It sounds like you're trying to use a Visual Web Part with SharePoint Online, which you can't do. Web parts for SharePoint Online need to be packaged as a part of a solution.

To deploy a solution to SharePoint Online you need to:

  1. Navigate to the solutions gallery: https://<yourfarmsite>/catalogs/solutions/forms/allitems.aspx
  2. Providing that you are logged in with the correct account and have permissions, this will take you to the solution gallery, where you can upload and activate custom web parts for site.
  3. Click the Solutions Menu
  4. Click Upload Solution
  5. Browse to your custom .wsp file and click OK
  6. After the web part has been uploaded, you can activate it; select the web part and click Activate
  7. Now that the custom web part is uploaded and activated in the Solution Gallery, you can edit the site page that you want to add it to and then add it as per a normal web part.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM