My quesion is about filtering of data in a Windows desktop application.

I have a large amount of data coming from a database (> 900.000 records). The records are shown in a classic listcontrol (rows and columns). The user needs to select an item from the list. Since the amount of records is so high, I will add some way of narrowing down the data, i.e. filtering possibility (alltough I probably won't name it that way).

Let me try to make my question clear with a (purely fictional) picture:

enter image description here

As you can see I have at the top a way to narrow down the data, and at the bottom a listcontrol with search results. With each selection that is made in the filter criteria, the results are immediately updated. In case the results exceed a certain amount, I show a message "please narrow down". Note that not all criteria have a corresponding column in the results list.

My question is very specific: does the filtering that you apply also need to have an effect on the search criteria?

Suppose there is a brand that does not have Diesel engined cars (Ferrari for example), and I first select the "diesel" option, then open the Brand drop down box. Does it still need to show Ferrari as a brand?

My own analysis when I do filter out the filter criteria as well:

  • PRO: It is useful because it gets you quicker to your goal. Combinations of criteria that are in contradiction with each other are left out, so the list of search criteria itself is smaller

  • CON: This may be confusing for some users. They will see that sometimes Ferrari is in the list, sometimes it is not. Will they be able to understand why?

Is there any general rule of thumb, or some research or usability studies that has been done about this subject?

1 Answer 1


Rather than disabling or removing controls, you could show counts besides the unused filter criteria like so:

enter image description here

There are a few pro's to an approach like this:

  • Users can know whether filtering on a given criteria is useful before taking any action, so there are fewer wasted actions.
  • Users can tell how useful a criteria will be at narrowing results.
  • Users can still choose to apply filters with '0' results in situations where they would like that criteria to hold fast while they tinker with other criteria. For instance, sure, they know there aren't any BMW 3-Series diesels, but they plan on also looking through VW Passats after this. (If you hide the controls, this usage is impossible.)
  • I have been playing with that idea as well. But what do you show as a number? Does the number 420 behind Petrol mean that there are 420 petrol cars in total, or 420 BMW 3-series with petrol engines? Commented Feb 24, 2012 at 14:28
  • Another remark: while indeed your solution does point out that some criteria are usesless, I will still have an enourmous list of Brands and Types. My real-life application does not work with cars. I literally have hundreds of brands and types. Also note that if I don't filter out the criteria I could choose funny things like "VW 3-series", because there is no relationship between brand and type (alltough in your suggested solution it will show 0 as a number). Commented Feb 24, 2012 at 14:37
  • 2
    To your first question, I imagined the number would be the resulting number if they were to apply that filter in addition to all other selected filters. Secondly, I assumed (given this example) that the Type is unique to the Brand, so that if you picked a different Brand, a new set of unique Types would arrive. So in your example, if you picked VW, the Type values would be replaced with Passat, Golf, Rabbit, etc. I'm not suggesting you break that link between those fields. I am suggesting criteria that is common to all cars is always shown. Commented Feb 24, 2012 at 20:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.