Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lesagesander/bedcfda6c4c70f823cfe to your computer and use it in GitHub Desktop.
Save lesagesander/bedcfda6c4c70f823cfe to your computer and use it in GitHub Desktop.
Add ListViewWebPart to wiki page and adapt view
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