Under Review
Last Updated: 06 Jun 2016 14:46 by Dan Avni
Dan Avni
Created on: 17 Mar 2015 19:55
Category: UI for ASP.NET AJAX
Type: Feature Request
New filter control
The current filtering of the grid wastes a lot of screen space If for example I want to filter a column to have values between X and Y. the column width especially on date column will need much more space for the filter than for the data actually shown.
On the current filter of the grid the user cannot filter on columns he is not seeing

My proposed implementation is simple but should work:
The control will be similar to the Menu control and will render just like in the video two lines of filters: static and optional. It will have a filters collection. Each filter will have these basic properties:
1. AlwaysDisplay - if true the filter is always displayed and cannot be removed.
2. Displayed - if true the filter is displayed. if not it is displayed on the static list last button as an optional filter
3 Type - Can be single value, Multiple values (checkbox list), Single date, Date range, Textbox (for free text search in all of the columns). obviously with needed properties for values etc.
4. Text - the name of the filter
5. The actual property to filter by
* pressing each filter will display a popup similar to the Custom menu sample with the needed filter type. selecting the value will update the filter text shown.
* the static filter list will show a button for optional filters which can be shown on the line below. filters on the optional line can be removed with a click on a X button
* all UI changes (adding/removing filters) should be on client side so the control will be very responsive.
* over time filters can evolve so that the date range filter popup for example can show except for the obvious option of from X to Y other options for the user (e.g. last X weeks/days/years) and other ideas shown on the video I sent you
The result the control produces is a LINQ expression which can be applied to the data source in a LINQ Where statement (my usage case) or other values (SQL where statement) that can be used by other users.

The proposed new control has the following advantages:
1. It can be positioned anywhere 
2. It can show fixed filters and optional filters
3. It can filter based on columns not visible on the grid
4. Optional filters can be removed quickly with the X button which provides faster change of filters for the user.

The end result of this filter is a much easier UX for filtering data. it uses far less screen space and is modular enough for future columns and to filter data sources for things other than the grid
Attached Files: