Dynamic Regions
Dynamic regions allow you control the reload of data within the region.
New-UDDynamic
allows you to define a dynamic region. Pages themselves are dynamic in nature. This means that every time a page is loaded, it runs the PowerShell for that page. Sometimes, you may want to reload a section of a page rather than the whole page itself. This is when you will want to use dynamic regions.
Basic Dynamic Region
This dynamic region reloads when the button is clicked.
New-UDDashboard -Title "Hello, World!" -Content {
New-UDDynamic -Id 'date' -Content {
New-UDTypography -Text "$(Get-Date)"
}
New-UDButton -Text 'Reload Date' -OnClick { Sync-UDElement -Id 'date' }
}

Auto Refresh
Dynamic regions enable the ability to auto refresh components after a certain amount of time. The entire region's script block will be run when autorefreshing.
New-UDDynamic -Id 'date' -Content {
New-UDTypography -Text "$(Get-Date)" -Variant h3
New-UDTypography -Text "$(Get-Random)" -Variant h3
} -AutoRefresh -AutoRefreshInterval 1

Loading Component
Sometimes refreshing a dynamic component may take some time. For example, if you are querying another service's REST API or a data. Dynamic regions support configuration of the component that shows when the region is reloading. By default, nothing is shown. This can be any Universal Dashboard component.
New-UDDynamic -Content {
Start-Sleep -Seconds 3
New-UDTypography -Text "Done!"
} -LoadingComponent {
New-UDProgress -Circular
}

API
New-UDDynamic
Defines a dynamic region on a page.
Name
Type
Description
Required
Id
string
Unique identifier for this region
false
ArgumentList
object[]
Arguments to pass to the region. Available within the -Content by using $ArgumentList
false
Content
ScriptBlock
The content to load within the dynamic region
true
AutoRefresh
Switch
Whether this dynamic region will refresh on an interval
false
AutoRefreshInterval
int
The number of seconds between auto refreshes.
false
LoadingComponent
ScriptBlock
A component to display when the dynamic is loading
false
Last updated
Was this helpful?