cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
dsab81
Microsoft
Microsoft

combo box defaultselecteditems property doesnt work

I have a combo box and a check box . When i check the check box , all the items in the combo box should be selected .

 

Combo box -  items property :

Sort(Distinct(
SiteCollection,
If(
NewComboBox.Selected.Value = "Cities",
City
)
),Result)

 

Combo box Default Selected Items Property:

Glob

 

Check box - On Check Property:

Set(Glob,Distinct(SiteCollection,If(NewComboBox.Selected.Value = "Cities",City) ) )

 

When the checkbox is selected , the list of cities are passed on to variable called Glob.

 

I used this same Glob variable in the default selected items property of combo box.

 

Issue:

When i check the checkbox , i could see that glob variable table has cities . But not sure why default selected values property is not taking up the values from the glob variable and selecting all cities in combo box.

 

if you see below, check box is selected, but item count in bcc combo box , didnt change any thing. it ideal should list the count of items. like e.g 76 items within the combo box

 

dsab81_0-1609828130729.png

 

Expected : The count of 76 should show within the combo box.

dsab81_1-1609828372191.png

 

 

Not sure what is the issue completely blocking me . Can anyone help ?

1 ACCEPTED SOLUTION

Accepted Solutions

Hi@

ClearCollect(
    'Site Admins',
    {
        City: "d",
        Supplier: "as",
        'Site Name': "xxx"
    },
    {
        City: "s",
        Supplier: "sd",
        'Site Name': "xxx"
    },
    {
        City: "d",
        Supplier: "ff",
        'Site Name': "xx"
    },
    {
        City: "d",
        Supplier: "fd",
        'Site Name': "xxx"
    }
)

Set the OnCheck of the Checkbox1 as below:

Reset(ComboBox2);
Set(
    Glob,
    Distinct(
        'Site Admins',
        If(
            NewComboBox.Selected.Value = "City",
            City,
            NewComboBox.Selected.Value = "Supplier",
            Supplier,
            NewComboBox.Selected.Value = "Site",
            'Site Name'
        )
    )
);

Set the Items property of the Combo Box2 as below:

Sort(Distinct(
'Site Admins',
If(
NewComboBox.Selected.Value = "Supplier",
Supplier,
NewComboBox.Selected.Value = "City",
City,
NewComboBox.Selected.Value = "Site",
'Site Name'
)
),Result)

Set the OnChange property of the Combo Box2 as below:

Clear(SelectedPerson); // Add this formula

ForAll(

// Add this formula

'ComboBox2'.SelectedItems,

Collect(

SelectedPerson,

Filter(

'Site Admins',

If( // Modify formula here

NewComboBox.Selected.Value = "Supplier",

Supplier = Result,

NewComboBox.Selected.Value = "City",

City = Result,

NewComboBox.Selected.Value = "Site",

'Site Name' = Result

)

)

)

);
If((CountRows(SelectedPerson)+CountRows(NewComboBox.SelectedItems)+CountRows('ComboBox2'.SelectedItems)) >500,UpdateContext({PopUpCount: true}))

Set the DefaultSelectedItems property of the Combo Box2 as below:

If(Checkbox1.Value=true,Glob)

Here is my test result, everything works great, please check as above.

Regards,

Qi

 

View solution in original post

7 REPLIES 7
v-qiaqi-msft
Community Support
Community Support

Hi@

["Cities","Tests"]

I set the OnCheck property of the Checkbox as below:

 

Set(
    Glob,
    Distinct(
        SubCategory,
        If(
            NewComboBox.Selected.Value = "Cities",
            Category
        )
    )
)

 

I set the Items property of the Combo Box as below:

Sort(Distinct(SubCategory,If(NewComboBox.Selected.Value="Cities",Category)),Result)

I set the DefaultSelectedItems property of the Combo Box as below:

Glob

Note: 'SubCategory' is my data source and the Category is a Text column in my data source.

Here is what I did next:

  1. Select the "Cities" from the NewComboBox
  2. Check the Checkbox
  3. All the items within the Combo Box display as expected.

I want to explain to you that the DefaultSelectedItems property of the Combo Box only works when you select nothing in the Combo Box which means that the Glob variable will be triggered in a default condition. In other word, if you have already selected an option from the Combo Box, even though you will then select "Cities" from the NewComboBox, the variable Glob you set in the DefaultSelectedItems property of the Combo Box will not be triggered cause the Combo Box has already not in a default situation.

I think you should use the Reset() function to reset the Combo Box in order to make the Combo Box back to a default situation.

Please modify your formula you set in the OnCheck property of the Checkbox as below:

Reset(ComboBox1);
Set(
    Glob,
    Distinct(
        SubCategory,
        If(
            NewComboBox.Selected.Value = "Cities",
            Category
        )
    )
)

Note: ComboBox1 represents the Combo Box named Bcc Items in your scenario.

Hope it could help.

Best Regards,

Qi

 

Hi Qi, Thanks for your response. Yes you got my scenario right . Points 1, 2,3 you mentioned are exactly what i am trying to do.

 

Tried the reset option you have suggested 😞  No luck. I would like to ping you on our internal forum's.

Hi@

If(Checkbox1.Value=true,Glob)

Check the GIF as below:

010601Gif.gif

Hope it could help.

Best Regards,

Qi

I updated the defaultselecteditems property as suggested, but no change. plz see the gif.

pa.gif

For you reference, here are the screenshots of my setup:

Checkbox : 

dsab81_0-1609899512434.png

 

Combo box (Bcc):

dsab81_1-1609899637304.png

dsab81_0-1609902482038.png

 

 

Combo box : 

On Change :

Clear(SelectedPerson); // Add this formula

ForAll(

// Add this formula

'ComboBox-Bcc'.SelectedItems,

Collect(

SelectedPerson,

Filter(

'Site Admins',

If( // Modify formula here

NewComboBox.Selected.Value = "Supplier",

Supplier = Result,

NewComboBox.Selected.Value = "City",

City = Result,

NewComboBox.Selected.Value = "Site",

'Site Name' = Result

)

)

)

);
If((CountRows(SelectedPerson)+CountRows('ComboBox-To'.SelectedItems)+CountRows('ComboBox-Cc'.SelectedItems)) >500,UpdateContext({PopUpCount: true}))

 

Items:

Sort(Distinct(
'Site Admins',
If(
NewComboBox.Selected.Value = "Supplier",
Supplier,
NewComboBox.Selected.Value = "City",
City,
NewComboBox.Selected.Value = "Site",
'Site Name'
)
),Result)

 

v-qiaqi-msft
Community Support
Community Support

Hi@

Reset(ComboBox1); Set( Glob, Distinct( SiteCollection, If( NewComboBox.Selected.Value = "Cities", City ) ) )// This is just a part of your formula.Remove the formula you set for the OnUncheck property of the Checkbox1.

// Please remove the formula you set for the OnUncheck property of the 

If(Checkbox1.Value=true,Glob)

Best Regards,

Qi

Still no luck . just the same experience.

 

Here r the screenshots after changes you suggested : 

Combo-box:

dsab81_0-1609905130154.png

dsab81_1-1609905181434.png

 

Checkbox:

dsab81_2-1609905209085.png

 

Hi@

ClearCollect(
    'Site Admins',
    {
        City: "d",
        Supplier: "as",
        'Site Name': "xxx"
    },
    {
        City: "s",
        Supplier: "sd",
        'Site Name': "xxx"
    },
    {
        City: "d",
        Supplier: "ff",
        'Site Name': "xx"
    },
    {
        City: "d",
        Supplier: "fd",
        'Site Name': "xxx"
    }
)

Set the OnCheck of the Checkbox1 as below:

Reset(ComboBox2);
Set(
    Glob,
    Distinct(
        'Site Admins',
        If(
            NewComboBox.Selected.Value = "City",
            City,
            NewComboBox.Selected.Value = "Supplier",
            Supplier,
            NewComboBox.Selected.Value = "Site",
            'Site Name'
        )
    )
);

Set the Items property of the Combo Box2 as below:

Sort(Distinct(
'Site Admins',
If(
NewComboBox.Selected.Value = "Supplier",
Supplier,
NewComboBox.Selected.Value = "City",
City,
NewComboBox.Selected.Value = "Site",
'Site Name'
)
),Result)

Set the OnChange property of the Combo Box2 as below:

Clear(SelectedPerson); // Add this formula

ForAll(

// Add this formula

'ComboBox2'.SelectedItems,

Collect(

SelectedPerson,

Filter(

'Site Admins',

If( // Modify formula here

NewComboBox.Selected.Value = "Supplier",

Supplier = Result,

NewComboBox.Selected.Value = "City",

City = Result,

NewComboBox.Selected.Value = "Site",

'Site Name' = Result

)

)

)

);
If((CountRows(SelectedPerson)+CountRows(NewComboBox.SelectedItems)+CountRows('ComboBox2'.SelectedItems)) >500,UpdateContext({PopUpCount: true}))

Set the DefaultSelectedItems property of the Combo Box2 as below:

If(Checkbox1.Value=true,Glob)

Here is my test result, everything works great, please check as above.

Regards,

Qi

 

View solution in original post

Helpful resources

Announcements
PA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

secondImage

Demo Extravaganza is Back!

We are excited to announce that Demo Extravaganza for 2021 has started!

MBAS on Demand

Microsoft Business Applications Summit sessions

On-demand access to all the great content presented by the product teams and community members! #MSBizAppsSummit #CommunityRocks

Power Apps June 2021

June Power Apps Community Call

Don't miss the call this month on June 16th - 8a PDT

Top Solution Authors
Top Kudoed Authors
Users online (73,134)