Sharepoint Online使用C#/ CSOM更改WebPart查看查询

时间:2017-05-12 07:26:26

标签: c# web-parts sharepoint-online csom

我尝试使用C#更改默认视图查询,但它无法正常工作。我可以更改JSLink属性,但不能更改XmlDefinition。任何想法解决方法或我做错了什么?

var webPart = listWebPart.WebPart.
clientContext.Load(webPart.Properties);
clientContext.ExecuteQuery();    
webPart.Properties["XmlDefinition"] = newQuery;
listWebPart.SaveWebPartChanges();
clientContext.Load(listWebPart);
clientContext.ExecuteQuery();

它在某个页面上列出了webpart。

1 个答案:

答案 0 :(得分:0)

您也可以获取SharePoint Online上具有LimitedWebPartManager功能的页面的GetLimitedWebPartManagerMSDN。然后,您可以使用LimitedWebPartManager加载WebParts,如下所示:

var page = ctx.Web.GetFileByServerRelativeUrl(pageUrl);
LimitedWebPartManager wpMgr = page.GetLimitedWebPartManager(Microsoft.SharePoint.Client.WebParts.PersonalizationScope.Shared);
ctx.Load(wpMgr.WebParts);
ctx.ExecuteQuery();

这将加载页面上的所有webpart。然后,您可以使用它的索引获取所需的网站部分的WebPartDefinition

WebPartDefinition webPartDef = wpMgr.WebParts[webpartIndex];
ctx.Load(webPartDef);
ctx.ExecuteQuery();

您现在可以最终更新所需的属性并保存定义:

webPartDef.WebPart.Properties["XmlDefinition"] = newQuery;
webPartDef.SaveWebPartChanges();
webPartDef.CloseWebPart();
ctx.ExecuteQuery();

希望这有助于您更新自己的网站属性