You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Get-PnPWebPart按页面原有顺序获取SharePoint Web部件

获取与SharePoint页面顺序一致的Web部件

使用Get-PnPWebPart返回的Web部件顺序默认不对应页面实际显示顺序,这是因为该命令是按Web部件内部存储的ID或其他标识排序,而非页面渲染顺序。要获取和页面一致的顺序,需要借助页面的CanvasContent1字段(存储页面布局的结构化JSON),步骤如下:

  • 第一步:获取页面对象并提取Canvas布局内容
$page = Get-PnPPage -Identity "path-to-files/test.aspx"
$canvasContent = $page.CanvasContent1
  • 第二步:解析JSON并按页面顺序匹配Web部件
# 解析Canvas布局的JSON数据
$canvasJson = $canvasContent | ConvertFrom-Json
# 获取所有Web部件
$webParts = Get-PnPWebPart -ServerRelativePageUrl "path-to-files/test.aspx"
# 按照Canvas中定义的顺序筛选并排序Web部件
$sortedWebParts = $canvasJson.controls | ForEach-Object {
    $targetId = $_.webPartId
    $webParts | Where-Object { $_.Id -eq $targetId }
}
# 输出排序后的Web部件列表
$sortedWebParts

说明

页面的CanvasContent1字段包含了页面上所有Web部件的布局结构,其中controls数组严格遵循页面上Web部件的渲染顺序。通过匹配数组中每个元素的webPartId与Get-PnPWebPart返回的Web部件ID,就能得到和页面实际顺序完全一致的Web部件列表。

内容的提问来源于stack exchange,提问作者Sree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 17:18:16