Skip to content

Select

This page details the actions available to Select elements.

Add

To add one or more Options, or Option Groups, you can use Add-PodeWebSelectOption along with -Option and optionally a -GroupName to place the options under:

New-PodeWebContainer -NoBackground -Content @(
    New-PodeWebSelect -Name 'Example' -Options @(
        New-PodeWebOptionGroup -Name 'Group1' -Options @(
            New-PodeWebOption -Name 'Option1'
        )
        New-PodeWebOption -Name 'Option2'
    )

    New-PodeWebButton -Name 'Add Option' -ScriptBlock {
        Add-PodeWebSelectOption -Name 'Example' -Option @(
            New-PodeWebOption -Name 'Added1'
        )
    }

    New-PodeWebButton -Name 'Add Option to Group' -ScriptBlock {
        Add-PodeWebSelectOption -Name 'Example' -GroupName 'Group1' -Option @(
            New-PodeWebOption -Name 'Added1'
        )
    }

    New-PodeWebButton -Name 'Add Options and Group' -ScriptBlock {
        Add-PodeWebSelectOption -Name 'Example' -Option @(
            New-PodeWebOptionGroup -Name 'AddedGroup1' -Options @(
                New-PodeWebOption -Name 'Added1'
            )
        )
    }
)

Clear

To clear the options of a Select element, you can use Clear-PodeWebSelect:

New-PodeWebContainer -NoBackground -Content @(
    New-PodeWebSelect -Name 'Example' -Options @(
        New-PodeWebOption -Name 'Option1'
        New-PodeWebOption -Name 'Option2'
        New-PodeWebOption -Name 'Option3'
    )

    New-PodeWebButton -Name 'Clear Select' -ScriptBlock {
        Clear-PodeWebSelect -Name 'Example'
    }
)

Remove

To remove one or more Options, or Option Groups, you can use Remove-PodeWebSelectOption along with -OptionName and/or -GroupName:

New-PodeWebContainer -NoBackground -Content @(
    New-PodeWebSelect -Name 'Example' -Options @(
        New-PodeWebOptionGroup -Name 'Group1' -Options @(
            New-PodeWebOption -Name 'Option1'
        )
        New-PodeWebOptionGroup -Name 'Group2' -Options @(
            New-PodeWebOption -Name 'Option2'
            New-PodeWebOption -Name 'Option3'
        )
    )

    New-PodeWebButton -Name 'Remove Groups' -ScriptBlock {
        Remove-PodeWebSelectOption -Name 'Example' -GroupName 'Group1', 'Group2'
    }

    New-PodeWebButton -Name 'Remove Options' -ScriptBlock {
        Remove-PodeWebSelectOption -Name 'Example' -OptionName 'Option1', 'Option3'
    }
)

Select

To set the currently selected option/value of a Select element, you can use Select-PodeWebSelectOption:

New-PodeWebContainer -NoBackground -Content @(
    New-PodeWebSelect -Name 'Example' -Options @(
        New-PodeWebOption -Name 'Option1'
        New-PodeWebOption -Name 'Option2'
        New-PodeWebOption -Name 'Option3'
    )

    New-PodeWebButton -Name 'Update Select' -ScriptBlock {
        $rand = Get-Random -Minimum 0 -Maximum 3
        $opt = (@('Option1', 'Option2', 'Option3'))[$rand]
        Select-PodeWebSelectOption -Name 'Example' -OptionName $opt
    }
)

Sync

If you built a Select element with the -ScriptBlock parameter, then you can re-invoke the scriptblock to update the element by using Sync-PodeWebSelect:

New-PodeWebContainer -NoBackground -Content @(
    New-PodeWebSelect -Name 'Example' -ScriptBlock {
        foreach ($i in (1..10)) {
            Get-Random -Minimum 1 -Maximum 10
        }
    }

    New-PodeWebButton -Name 'Sync Select' -ScriptBlock {
        Sync-PodeWebSelect -Name 'Example'
    }
)

Update

You can update a Select element's options by using Update-PodeWebSelect:

New-PodeWebContainer -NoBackground -Content @(
    New-PodeWebSelect -Name 'Example' -ScriptBlock {
        foreach ($i in (1..10)) {
            Get-Random -Minimum 1 -Maximum 10
        }
    }

    New-PodeWebButton -Name 'New Options' -ScriptBlock {
        $options = @(foreach ($i in (1..10)) {
            Get-Random -Minimum 1 -Maximum 10
        })

        $options |
            ConvertTo-PodeWebOption |
            Update-PodeWebSelect -Name 'Example'
    }
)

Various other properties can be updated as well.