如何解决使用 pnp 以编程方式创建轮播 webpart
我正在尝试以编程方式在现代 SharePoint 页面中创建轮播 Web 部件。 我没有找到此 webpart 的任何文档或示例。 我遇到的主要问题是我没有找到如何设置图像的 url。 我尝试手动添加轮播并以编程方式设置所有相同的属性,但它不起作用, 主要是因为属性存储在没有 setter 的 ServerProcessedContent 中。 此页面建议设置 webPartData 但没有成功:https://github.com/pnp/PnP-Sites-Core/issues/1729
您能否发布一个允许实现此目的的示例?
OfficeDevPnP.Core.Pages.ClientSidePage clientSidePage = GetClientSidePage("testheader");
ClearSections(clientSidePage);
AddSection(clientSidePage,2);
AddCarouselWebPart(clientSidePage,1);
SaveClientSidePage(clientSidePage);
Function AddCarouselWebPart:
CanvasSection section = page.Sections[sectionId];
ClientSideWebPart webPart = page.InstantiateDefaultWebPart(DefaultClientSideWebParts.ImageGallery);
webPart.Properties["layout"] = 1;
dynamic carouselSettings = new JObject();
carouselSettings.autoplay = true;
carouselSettings.autoplaySpeed = 5;
carouselSettings.dots = true;
carouselSettings.lazyLoad = true;
carouselSettings.metadata = true;
carouselSettings.swipe = true;
webPart.Properties["carouselSettings"] = carouselSettings;
dynamic gridSettings = new JObject();
gridSettings.imageSize = 2;
gridSettings.imageCropping = 1;
gridSettings.imageAspectRatio = 1;
gridSettings.lightbox = false;
webPart.Properties["gridSettings"] = gridSettings;
webPart.Properties["imageSourceType"] = 1;
webPart.Properties["isRecursive"] = false;
webPart.Properties["isCdnEnabledForList"] = false;
webPart.Properties["hasDynamicModeEnabled"] = false;
webPart.Properties["maxImagesCount"] = 10;
JObject imageSources = new JObject
{
{ "images[0].url","/sites/Test/images/1.jpg" },{ "images[1].url","/sites/Test/images/2.jpg" },{ "images[2].url","/sites/Test/images/3.jpg" }
};
dynamic serverProcessedContent = new JObject();
serverProcessedContent.htmlStrings = new JObject();
serverProcessedContent.searchablePlainTexts = new JObject();
serverProcessedContent.imagesources = imageSources;
serverProcessedContent.links = new JObject();
JObject customMetadata = new JObject
{
{ "images[0].url",new JObject() },new JObject()},new JObject() }
};
serverProcessedContent.customMetadata = customMetadata;
JObject componentDependencies = new JObject();
componentDependencies["layoutComponentId"] = "8ac0c53c-e8d0-4e3e-87d0-7449eb0d4027";
serverProcessedContent.componentDependencies = componentDependencies;
JObject final = new JObject
{
{ "serverProcessedContent",serverProcessedContent}
};
webPart.Properties["webPartData"] = final;
//webPart.ServerProcessedContent = serverProcessedContent;
page.AddControl(webPart,section.Columns[columnId],1);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。