Last active
August 29, 2015 14:05
-
-
Save lesagesander/bedcfda6c4c70f823cfe to your computer and use it in GitHub Desktop.
Add ListViewWebPart to wiki page and adapt view
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public SPRemoteEventResult ProcessEvent(SPRemoteEventProperties properties) | |
{ | |
var result = new SPRemoteEventResult(); | |
using (var clientContext = TokenHelper.CreateRemoteEventReceiverClientContext(properties)) | |
{ | |
if (clientContext != null) | |
{ | |
try | |
{ | |
//create document library | |
clientContext.Web.AddDocumentLibrary("Internal documents", true); | |
//create wiki page | |
clientContext.Web.AddWikiPage("Site Pages", "Documents.aspx"); | |
//set correct page layout to wiki page | |
clientContext.Web.AddLayoutToWikiPage("sitepages", WikiPageLayout.TwoColumns, "Documents"); | |
//get new document library | |
var internallDocLib = clientContext.Web.GetListByTitle("Internal documents"); | |
//add listviewwebparts to page | |
var internalDocsWebPartEntity = new WebPartEntity | |
{ | |
WebPartIndex = 2, | |
WebPartTitle = "Latest Internal Documents", | |
WebPartZone = "Left", | |
WebPartXml = string.Format(Globals.ListViewWebPart, internallDocLib.Id, "Latest Internal Documents") | |
}; | |
//params: pageslibrary url, webpartentity, wiki page, table row, table column, addSpace under web part | |
clientContext.Web.AddWebPartToWikiPage("sitepages", internalDocsWebPartEntity, "documents.aspx", 1, 1, true); | |
//adapt hidden views used by xsltlistviewwebparts | |
clientContext.Web.Context.Load(internallDocLib.Views); | |
clientContext.Web.Context.ExecuteQuery(); | |
//use linq query to find the view where the view its property "ServerRelativeUrl" is equal to the page url that contains the web part. | |
var internalViewHomePage = | |
(from v in internallDocLib.Views | |
where v.ServerRelativeUrl == String.Format("{0}/SitePages/{1}", clientContext.Web.ServerRelativeUrl, "documents.aspx") | |
select v).SingleOrDefault(); | |
//remove all viewfields and add desired columns. | |
if (internalViewHomePage != null && internalViewHomePage.Hidden) | |
{ | |
internalViewHomePage.ViewFields.RemoveAll(); | |
internalViewHomePage.ViewFields.Add("DocIcon"); | |
internalViewHomePage.ViewFields.Add("LinkFilename"); | |
internalViewHomePage.ViewFields.Add("_UIVersionString"); | |
internalViewHomePage.ViewFields.Add("Modified"); | |
internalViewHomePage.ViewFields.Add("Editor"); | |
internalViewHomePage.Update(); | |
internalViewHomePage.Context.ExecuteQuery(); | |
} | |
} | |
catch | |
{ | |
//write logging information | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment