This post describes how to show or hide fields based on a choice column from a SharePoint list in Power Apps.
I was recently working on a Power App form for new site/ teams requests. The fields were all based on SharePoint list columns and one of the key fields was a choice column. What I wanted to do was have an additional field default to being hidden from the screen unless a particular choice value was selected.
Now I’ve used the Microsoft guidance to create dependant drop-downs before but this scenario was slightly different and it was based on a choice column which isn’t compatible to my knowledge. I’d done something before in my Power App to toggle the display mode of a button in my app if fields are blank. So starting with this I used a simple if function in my formula to show/ hide my field based on the selected choice value.
Here’s how to hide a field based on a choice value in Power Apps:
- Open your Power App to edit it > ensure both the choice field and the field you want to hide are added to the screen
- Select the data card for the field you want to hide until a choice value is selected
- In the top, left-hand corner of the Power Apps editor, select the visible property
- Add the following if statement to the formula bar, replacing the parts highlighted below:
- Replace rdoRequestType with the name of your choice control
- Replace “Project site” with the selected value from your choice field
Now, by default your field will be hidden from the screen until you select the relevant choice value!
This was a helpful reminder – you don’t need to push it out from the OnChange event of the Choice field – just let it be a “pull” from the other fields you want to change based on the Choice field! It’s simpler, but not intuitive.
what is the function for visibility based on more than one choice value?
Hi Kathy, thanks for the comment. well in my example im using the DisplayMode property to disable/ enable the button. So if I wanted to to disable it until two fields were not blank I would use something like this:
If(IsBlank(DataCardValue4) || IsBlank(DataCardValue5), DisplayMode.Disabled,DisplayMode.Edit)
(DataCardValue = your field)