I have a page where a table and column are defined but then the data is set upon an event such as a click event from another object. I use Set-UDElement to set the data and for some reason some of the columns are empty while others are fine. If I load the table using the same query at page load time all of the data comes in fine.
Product: PowerShell Universal
Version: 5.0.15
adam
February 20, 2025, 7:11pm
2
Can you provide a little snippet of code? It might help folks try it out and see if this is a bug or something else.
Here’s the entire tab.
New-UDTab -Text 'Clusters' -Content {
new-UDGrid -Container -content {
new-UDGrid -Item -ExtraSmallSize 12 -content {
New-UDDynamic -Id 'dyngridclusters' -Content {
new-UDTypography -Id "lblClusters" -Text "Nutanix and VMWare Clusters"
$Columns = @(
New-UDTableColumn -Property ClusterName -Title ClusterName -Filter -FilterType AutoComplete -IncludeInExport -DefaultSortColumn -Render {
if ($EventData.ClusterName.Contains("ahv")) {
$url = "https://" + $EventData.ClusterName + ":9440"
New-UDLink -Text $EventData.ClusterName -Url $url -Style @{ fontSize = "12px" } -OpenInNewWindow
}
else {
$url = "https://bap-ny6-vcsa01.bamfunds.net/ui"
New-UDLink -Text $EventData.ClusterName -Url $url -Style @{ fontSize = "12px" } -OpenInNewWindow
}
}
New-UDTableColumn -Property Site -Title Site -Filter -FilterType AutoComplete -IncludeInExport
New-UDTableColumn -Property HostCount -Title HostCount -Filter -FilterType AutoComplete -IncludeInExport
New-UDTableColumn -Property Cores -Title Cores -Filter -FilterType AutoComplete -IncludeInExport
New-UDTableColumn -Property Memory -Title "Memory(TB)" -Filter -FilterType AutoComplete -IncludeInExport -Render {
$mem = [math]::Round($EventData.Memory,2)
new-UDTypography -Text $mem
}
New-UDTableColumn -Property VMsOn -Title VMsOn -Filter -FilterType AutoComplete -IncludeInExport
New-UDTableColumn -Property vCPU -Title vCPU -Filter -FilterType AutoComplete -IncludeInExport
New-UDTableColumn -Property vCPURatio -Title vCPURatio -Filter -FilterType AutoComplete -IncludeInExport -Render {
if ($EventData.vCPURatio -ge 4.0) {
New-UDAlert -Text $EventData.vCPURatio -Severity "error" -Dense -Style @{ fontSize = "12px" }
} elseif ($EventData.vCPURatio -ge 3.5){
New-UDAlert -Text $EventData.vCPURatio -Severity "warning" -Dense -Style @{ fontSize = "12px" }
} else {
new-UDTypography -Text $EventData.vCPURatio
}
}
New-UDTableColumn -Property vCPU_Avail -Title vCPU_Avail -Filter -FilterType AutoComplete -IncludeInExport -Render {
if ($EventData.vCPU_Avail -lt 0) {
New-UDAlert -Text $EventData.vCPU_Avail -Severity "warning" -Dense -Style @{ fontSize = "12px" }
} else {
new-UDTypography -Text $EventData.vCPU_Avail
}
}
New-UDTableColumn -Property Type -Title Type -Filter -FilterType AutoComplete -IncludeInExport
)
$Data = @()
$count = 0
$clusters = GetInfraData "Clusters_view" "ClusterName"
foreach ($cluster in $clusters) {
$count++
$item = @{ClusterName = $cluster.ClusterName; Site = $cluster.Site; HostCount = $cluster.Host_Count; Cores = $cluster.Cores; Memory = $cluster.Memory; VMsOn = $cluster.VMs; vCPU = $cluster.vCPU; vCPURatio = $cluster.vCPU_Ratio; vCPU_Avail = $cluster.vCPU_Avail; Type = $cluster.Type}
$Data = $Data += $item
}
$clustersBYtype = GetInfraData "Clusters_by_type_view"
$clustersBYvendor = GetInfraData "Clusters_by_vendor_view"
$Chart1 = New-UDChartJS -Data $clustersBYtype -DataProperty Clusters -LabelProperty Type -Type 'bar' -DatasetLabel "Type" -Id 'chart_type' -OnClick {
$tbl = Get-UDElement -Id 'tblClusters'
$Data2 = @()
$count = 0
$clusters = GetInfraData "Clusters_view" "ClusterName"
foreach ($cluster in $clusters) {
$count++
$item = @{ClusterName = $cluster.ClusterName; Site = $cluster.Site; HostCount = $cluster.Host_Count; Cores = $cluster.Cores; Memory = $cluster.Memory; VMsOn = $cluster.VMs; vCPU = $cluster.vCPU; vCPURatio = $cluster.vCPU_Ratio; vCPU_Avail = $cluster.vCPU_Avail; Type = $cluster.Type}
$Data2 = $Data2 += $item
}
$filteredData = $Data2 | Where-Object { $_.Type -eq $EventData.Label }
Set-UDElement -Id 'tblClusters' -Properties @{Data=$filteredData }
}
$Chart2 = New-UDChartJS -Data $clustersBYvendor -DataProperty Clusters -LabelProperty Vendor -Type 'bar' -DatasetLabel "Vendor" -Id 'chart_vendor' -OnClick {
}
New-UDGrid -Container -Spacing 8 -Content {
New-UDGrid -Item -ExtraSmallSize 3 -Content {
$Chart1
}
New-UDGrid -Item -ExtraSmallSize 3 -Content {
$Chart2
}
}
New-UDStyle -Style '
.MuiTableCell-root {
padding: 3px;
font-size: 12px;
}' -Content {
New-UDTable -Id 'tblClusters' -Columns $Columns -Data $Data -Dense -ShowSort -ShowFilter -Paging -PageSize 25 -Export
}
} -LoadingComponent {
New-UDProgress -Circular
}
}
}
} -Dynamic