Using Powershell, how are dropdown based custom webpart properties set?
SharePoint
2
Posts
2
Posters
3
Views
1
Watching
-
I have the following Powershell function:
function Add-WebPartToPage {
\[CmdletBinding()\] Param( \[Parameter(Mandatory=$true, Position=0, ValueFromPipeline=$true)\] \[System.Object\]$web, \[Parameter(Mandatory=$true, Position=1)\] \[string\]$pageTitle, \[Parameter(Mandatory=$true, Position=2)\] \[Microsoft.SharePoint.SPList\]$list, \[Parameter(Mandatory=$false, Position=3)\] \[System.Object\]$webpart, \[Parameter(Mandatory=$false, Position=4)\] \[string\]$webPartTitle, \[Parameter(Mandatory=$false, Position=5)\] \[string\]$panelTitle, \[Parameter(Mandatory=$false, Position=6)\] \[int\]$CSPUElevel, \[Parameter(Mandatory=$false, Position=7)\] \[int\]$panelType )
Process
{
#if webpart specified then add it to the page if($webpart) { $pageName = $list.Title + "/$pageTitle.aspx" $pageName = $pageName -replace " ","" $page = $web.GetFile($pageName) $page.CheckOut() $mgr = $web.GetLimitedWebPartManager($pageName, \[System.Web.UI.WebControls.WebParts.PersonalizationScope\]::Shared) if($webPartTitle) { $webpart.Title = $webPartTitle } $webpart.ChromeType = "None" #++ Extended Settings if($webpart.GetType().Name -eq "DynamicWebPart") { # $pinProperties = $webpart.GetType().GetProperties() foreach ($prop in $pinProperties) { if(($panelTitle) -and ($prop.Name -eq "PanelTitle")) { $webpart.PanelTitle = $panelTitle } if(($CSPUElevel) -and ($prop.Name -eq "CSPUElevel")) { $webpart.CSPUElevel = $CSPUElevel } if(($panelType) -and ($prop.Name -eq "PanelType")) { $webpart.PanelType = $panelType } } } #-- End of Extended Settings $mgr.AddWebPart($webpart, "FullPage", 0) Write-Host -f Green "Webpart $webpart.WebBrowsableObject added to the page" $page.CheckIn("Checked in Automatically") #$page.Publish("Published Automatically") }
}
}
Everything works fine until it gets to the extended properties of the webpart. Within that logic, the panel title will set correc
-
I have the following Powershell function:
function Add-WebPartToPage {
\[CmdletBinding()\] Param( \[Parameter(Mandatory=$true, Position=0, ValueFromPipeline=$true)\] \[System.Object\]$web, \[Parameter(Mandatory=$true, Position=1)\] \[string\]$pageTitle, \[Parameter(Mandatory=$true, Position=2)\] \[Microsoft.SharePoint.SPList\]$list, \[Parameter(Mandatory=$false, Position=3)\] \[System.Object\]$webpart, \[Parameter(Mandatory=$false, Position=4)\] \[string\]$webPartTitle, \[Parameter(Mandatory=$false, Position=5)\] \[string\]$panelTitle, \[Parameter(Mandatory=$false, Position=6)\] \[int\]$CSPUElevel, \[Parameter(Mandatory=$false, Position=7)\] \[int\]$panelType )
Process
{
#if webpart specified then add it to the page if($webpart) { $pageName = $list.Title + "/$pageTitle.aspx" $pageName = $pageName -replace " ","" $page = $web.GetFile($pageName) $page.CheckOut() $mgr = $web.GetLimitedWebPartManager($pageName, \[System.Web.UI.WebControls.WebParts.PersonalizationScope\]::Shared) if($webPartTitle) { $webpart.Title = $webPartTitle } $webpart.ChromeType = "None" #++ Extended Settings if($webpart.GetType().Name -eq "DynamicWebPart") { # $pinProperties = $webpart.GetType().GetProperties() foreach ($prop in $pinProperties) { if(($panelTitle) -and ($prop.Name -eq "PanelTitle")) { $webpart.PanelTitle = $panelTitle } if(($CSPUElevel) -and ($prop.Name -eq "CSPUElevel")) { $webpart.CSPUElevel = $CSPUElevel } if(($panelType) -and ($prop.Name -eq "PanelType")) { $webpart.PanelType = $panelType } } } #-- End of Extended Settings $mgr.AddWebPart($webpart, "FullPage", 0) Write-Host -f Green "Webpart $webpart.WebBrowsableObject added to the page" $page.CheckIn("Checked in Automatically") #$page.Publish("Published Automatically") }
}
}
Everything works fine until it gets to the extended properties of the webpart. Within that logic, the panel title will set correc
yes you can