2015-07-22 71 views
0

是否有人知道是否可以在Office 365中使用CSOM导出Web部件。我想要启用的方案是将发布页面(嵌入Web部件)从一个Office 365租赁移动到另一个Office 365租赁。我最初的研究表明,在客户端代码中不可能 - 任何帮助表示赞赏。使用csom导出SharePoint Webpart

回答

0

SharePoint仅通过CSOM导出LimitedWebPartManager。 这是非常有限的(因此名称),可以实现只有有限的行动。 (更改WebPart的标题,阅读信息)。

但是,我建议您使用/_vti_bin/webpartpages.asmx服务。 (添加服务引用,http://yoursharepoint/_vti_bin/webpartpages.asmx

var credentials = new NetworkCredential(); 
credentials.UserName = "username"; 
credentials.Password = "secret"; 
credentials.Domain = "domain"; 

var svc = new WebPartPagesSvc.WebPartPagesWebService(); 
svc.Credentials = credentials; 

var result = svc.GetWebPartPage(filename, WebPartPages2Svc.SPWebServiceBehavior.Version3); 

Console.Write(result); 

希望这有助于

1

下面的代码应该做的伎俩

var limitedWebPartManager = file.GetLimitedWebPartManager(PersonalizationScope.Shared); 
     var webPartDefinitons = limitedWebPartManager.WebParts; 
     clientContext.LoadAndExecute(webPartDefinitons); 
     foreach (var webpartDefintion in webPartDefinitons) 
     { 
      try 
      { 
       var webPartId = webpartDefintion.Id; 
       var webPartXML = limitedWebPartManager.ExportWebPart(webPartId); 
       clientContext.ExecuteQuery(); 
       clientContext.Load(webpartDefintion, def => def.ZoneId, def => def.Id); 
       clientContext.LoadAndExecute(webpartDefintion.WebPart, w => w.Title, w => w.ZoneIndex, w => w.Properties); 

      } 
      catch (Exception exception) 
      { 
       Console.WriteLine(exception); 
      } 
     } 
+0

作为Waldek Mastykarz写:。在ExportWebPart方法应该是,因为可用2016年3月SharePoint Online CSOM更新(来源:https://blog.mastykarz.nl/export-web-parts-csom/),另见:https://dev.office.com/blogs/new-sharepoint-csom -version发布换办公室-365-行军-2016 – pholpar