Showing posts with label SharePoint. Show all posts
Showing posts with label SharePoint. Show all posts

Monday, March 14, 2016

Updating Publishing Page attribute in SharePoint Online

We have moved over to using the Patterns and Practices approach to SharePoint site deployment, with the exception of a few older or more complex .wsp based sites and for one product we are using post-provisioning tasks to modify the values of a custom content type based on values passed through PnP by storing them in the property bag.

Initially, the site template we were using was a vanilla Team Site, however, it was deemed necessary to enable publishing to achieve certain goals. Once this was done, we needed to checkin/checkout/publish the page in order to make and save the changes. This was failing with the save operation complaining that the page was checked out. Initially I was shouting at SP because I knew the page was checked out, because I had asked for it to be, however, it seems that this wasn't the checkout SP was referring to.

Finding this post on Stack Overflow (http://sharepoint.stackexchange.com/questions/59177/check-out-update-then-check-in-a-file-in-sharepoint-client-object-model) it seems that the flow needs to be:

  • Check out
  • ExecuteQuery()
  • Modify
  • Update()
  • ExecuteQuery()
  • Checkin
  • Publish
  • ExecuteQuery()
When we did this the page was successfully updated. One thing that I additionally did was to wrap the checkout/executequery in a try/catch so that if the page was already checked out, it would carry on and run the update. However, this will probably only be a solution if the user who has the page checked out is the same as that running the current update.

Wednesday, March 9, 2016

Visual Studio and Auto-Format of SharePoint aspx

I was working on an aspx layout page for SharePoint and foolishly, it would appear, selected 'Format Document' from the Edit > Advanced fly out in VS 2015. Deploying the layout template stopped working and it transpired that the reason was because of the 'Format Document' command.

Despite both SharePoint and Visual Studio being MS products and .aspx a MS file extension, the command in VS breaks it. Nice work!

So what happened?

Well, it seems that formatting the document modifies the casing of certain aspx tags and turns

<asp:Content ContentPlaceHolderId=

into

<asp:content contentplaceholderid=

And that, it seems is not liked by SharePoint. The solution is a quick search and replace (be careful with that) and the layout works like it always did.