cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
AndKanPA
Resolver I
Resolver I

Filter dropdown

Hello community,

 

is there a way to create a dropown from all distinct/unique records?

Entity attribut is a text.
I want to create a dropdown with all different values across entity as a filter.

 

Example:
apple | red

apple | green
tomato | red

tomato | green

lemon | yellow

lemon | green

cherry | red

 

Filter dropown for color has entries:
red, green and yellow

 

Filter dropdown for fruits has entries:
apple, tomato, lemon and cherry.

 

Thanks for help,

AndKan.

1 ACCEPTED SOLUTION

Accepted Solutions

I make a solution with JS-manipulating DOM. In this workaround a dropdown/select is displayed insteed of checkboxes.
Quite simple so far.


But only filter values are useable, which are already defined in FetchXML filter.
Filter is defined as:

 

<filter type="or" adx:uiname="Color">
  <condition attribute="cr847_bstatus" operator="eq" value="red" />
  <condition attribute="cr847_bstatus" operator="eq" value="green" />
  <condition attribute="cr847_bstatus" operator="eq" value="yellow" />
</filter>

 

Results in HTML:

 

<input type="checkbox" name="0" value="0">
<input type="checkbox" name="0" value="1">
<input type="checkbox" name="0" value="2">

 

 When first checkbox is clicked, it is submitted as:

 

metaFilter: "0=0"

 

You see 0=0
"0" is the number of filter condition in filter number 0 (first filter); in this case like red.

Submitting 0=3 is useless, because no fourth condition defined in filter.
When changing order of conditions in filter: 

 

<filter type="or" adx:uiname="Color">
  <condition attribute="cr847_bstatus" operator="eq" value="yellow" />
  <condition attribute="cr847_bstatus" operator="eq" value="red" />
  <condition attribute="cr847_bstatus" operator="eq" value="green" />
</filter>

 

then 0=0 is now yellow.

A real filter, as I expected, isn't possible this way.

A definition:

 

<condition attribute="cr847_bstatus" operator="neq" value=" " />

 

gives exactly one checkbox and not all results, which not contain " "

 

Each condition defined in FetchXML filter becomes one option in portal. That's all.

I think Microsoft can do a lot to expand functionality of such a filter. Couldnt be so much complicated ...

 

My solution is now a combination of JS/Liquid fetch/Textfilter.
Works fine 🙂

View solution in original post

5 REPLIES 5
UlrikkeAkerbæk
Resolver I
Resolver I

Hello @AndKanPA.

 

You cannot set dynamic filters on text fields, but you can set up Attribute filter sets as dropdown. Then using text fields you will have to manually set up the filters you need and maintain the list as more values are added and deleted. Text Filter is also an option where you allow users to enter text strings as filter. 

 

Text Filter

For text fields I would use a "Text Filter" to allow users to filter results by entering text strings:

UlrikkeAkerbæk_0-1603269944957.png

This will display a text box where you can search for text values in a specific text field:

UlrikkeAkerbæk_1-1603270102949.png

 

Attribute filter sets

You can also set up Attribute Filter Sets on text fields to enable that drop down experience you wanted. Then you will have to maintain the options manually to make sure all possible options are found as a filter option.

 

attributefilterset.jpg

 

I used "check boxes" to easily display in this image - but choose drop down if you wish. 

UlrikkeAkerbæk_2-1603271427110.png

 

 

If you want to use dynamic filters you can have the colors and the fruit types as option sets or in a relational entity.

dynamicsets.png

Then the filters will automatically display the filter options that are available for your records.

dynamicresult.png

 

Hope this answer your question. If you gave more questions regarding filters the documentation might be helpful: https://docs.microsoft.com/en-us/powerapps/maker/portals/configure/entity-lists#entity-list-filter-c...

OOlashyn
Super User
Super User

Hi @AndKanPA ,

 

If we are talking about unique records inside entity set you can use "distinct=true" in your fetchxml in fetch node. It will return only unique records in the set. If you want to return all records that have a unique value in some field or get all possible unique values from that field I don't think it is possible.

----------------------------------------------------
If you find this post helpful consider marking it as a solution to help others find it.

Thanks you @OOlashyn .
I'll try "distinct"; sounds good for the first.


But I ever get checkboxes instead of a dropdown, when I use the FetchXML filter.

 

Any way to change from checkboxes to dropdown?

 

Thanks,

AndKan.

@UlrikkeAkerbæk , sorry, I didnt see your reply yesterday.
Thank you for your detailed answer.


I saw different option for other filters, but where is such an option, when I use FetchXML Filter

AndKanPA_0-1603516200604.png

?
Perhaps there is a little attribute adx:uitype or something.

Thank you,

AndKan.

I make a solution with JS-manipulating DOM. In this workaround a dropdown/select is displayed insteed of checkboxes.
Quite simple so far.


But only filter values are useable, which are already defined in FetchXML filter.
Filter is defined as:

 

<filter type="or" adx:uiname="Color">
  <condition attribute="cr847_bstatus" operator="eq" value="red" />
  <condition attribute="cr847_bstatus" operator="eq" value="green" />
  <condition attribute="cr847_bstatus" operator="eq" value="yellow" />
</filter>

 

Results in HTML:

 

<input type="checkbox" name="0" value="0">
<input type="checkbox" name="0" value="1">
<input type="checkbox" name="0" value="2">

 

 When first checkbox is clicked, it is submitted as:

 

metaFilter: "0=0"

 

You see 0=0
"0" is the number of filter condition in filter number 0 (first filter); in this case like red.

Submitting 0=3 is useless, because no fourth condition defined in filter.
When changing order of conditions in filter: 

 

<filter type="or" adx:uiname="Color">
  <condition attribute="cr847_bstatus" operator="eq" value="yellow" />
  <condition attribute="cr847_bstatus" operator="eq" value="red" />
  <condition attribute="cr847_bstatus" operator="eq" value="green" />
</filter>

 

then 0=0 is now yellow.

A real filter, as I expected, isn't possible this way.

A definition:

 

<condition attribute="cr847_bstatus" operator="neq" value=" " />

 

gives exactly one checkbox and not all results, which not contain " "

 

Each condition defined in FetchXML filter becomes one option in portal. That's all.

I think Microsoft can do a lot to expand functionality of such a filter. Couldnt be so much complicated ...

 

My solution is now a combination of JS/Liquid fetch/Textfilter.
Works fine 🙂

View solution in original post

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.

Top Solution Authors
Users online (3,731)