What's New in v6
Data Handling Enhancements
Filtering UI Innovations
The ExpressQuantumGrid v6 offers you a new UI element for data filtering. Unlike other filtering solutions you may have used previously, this one allows you to apply a filter condition directly within the grid. There is no need to invoke popup dialogs or dropdown windows which invariable serve to slow down the end-user. You simply enter the desired filter values within the specially designed Filter Row that's displayed at the top of the View. And as you can probably guess, these filter value cells use the same editors as those you've assigned to the corresponding column(s). To enable this brand new data filtering capability, simply enable the FilterRow.Visible option. 
The Filter Row provides two unique modes of operation. You can choose the appropriate mode via the FilterRow.ApplyChanges property.
- Immediate Filter Update
The applied filter condition is updated immediately after you enter or delete a character within the Filter Row. In this mode, when working with string values, the LIKE condition is used to compare values. This allows you to filter your dataset incrementally - the number of matching records will be narrowed down as you enter more and more characters.
- Postponed Filter Update
In this mode, the filter is not updated while you enter information within a filter cell. End-users will need to explicitly apply changes to use the specified condition (they can leave the cell or press ENTER while the cell still has input focus). Note that in this mode, the filter engine searches for exact matches instead of using the LIKE operator. End-users can, however, enter wildcard characters to force the grid to search against sub-strings.

One additional visual enhancement has been engineered so as to make it much easier for you and your users to manipulate the currently applied filter condition. Column filter dropdowns now use checked lists. This means that you can easily choose multiple filter values and never have to invoke additional dialogs to slow down the filtering process. 
Like the Filter Row, filter checklists allow you to use postponed filter updates. This means that the View won't be updated each time an end-user checks or unchecks an item within the list. End-users will be able to check and uncheck the desired value(s) and then apply all changes at once by pressing the Apply Filter button displayed at the bottom of the dropdown. To enable this feature, activate the View's Filtering.ColumnPopup.ApplyMultiSelectChanges property. 
Note that checked filter lists are now enabled by default. If you need to use simple lists instead, set the Filtering.ColumnPopup.MultiSelect property to False. The corresponding option is also available for individual columns. Filter dropdowns can now be populated with only those values that are currently available (that have not been filtered out). This is especially useful if you apply filters consecutively across several columns. Instead of searching through long lists, you deal with shorter lists that only display the currently available values. 
Note that all new features described herein apply to Card Views as well, with the exception of the Filter Row, which can only be enabled in Table Views.
Improved Date-Time Value Handling
There are two main enhancements in date-time value management - more flexible filtering and grouping capabilities. Let's start with what's new in our data filtering mechanisms. First, you can now easily force a View to ignore the time portion of date-time values. This means that filter dropdowns will be populated with dates without their corresponding time element. If a date is selected, all values that have the same date element will be displayed. This makes it much easier for end-users to analyze data. To ignore time when applying a filter, use the DateTimeHandling.IgnoreTimeForFiltering property. Note even after you apply a filter, the time element of a date-time value is taken into consideration when you sort data. 
The following new feature is also related to filter dropdowns displayed for date-time columns. These dropdowns can now include values that correspond to time intervals such as a year or a month. They can also include items that specify time ranges relative to the current date. As an example, you can now include a Previous Week item. The availability of these advanced filter items is controlled by the View's DateTimeHandling.Filters property. This property's value is a set that can accept values listed and illustrated in the following table.
| Relative Days | Relative Day Periods | Relative Weeks | Relative Months |

| 
| 
| 
|
| Relative Years | Past / Future | Months | Years |

| 
| 
| 
|
We provide tons of predefined filter types, but we know that we can never provide enough and we also know that in some instances, centralized control at the View level is not flexible enough. Thus, you may want to do the following:
- Extend the built-in collection of time ranges with your own. For instance, you may wish to implement "Before Noon" and "After Noon" filters and incorporate them into the filter dropdown.
- Control which date-time ranges are available in each individual column's dropdown.
Both tasks can be easily accomplished using the OnInitFilteringDateRanges event. This event allows you to change the collection of date ranges used in each particular column. Since a date range is a class, you can easily implement your own date range by providing a derived class. You only need to override a couple of simple methods for this purpose. Please refer to the documentation for additional details. Let's now proceed to changes in our date-time grouping mechanisms. The ExpressQuantumGrid v6 introduces a DateTimeHandling.Grouping property that specifies how date-time values should be joined into groups. Similar to our filtering capabilities, the most frequently needed grouping types are built-in. Again, you are free to add custom grouping types by handling the specially designed OnInitGroupingDateRanges event. As with filter conditions, group types are represented by the same date range classes. Once created, a custom date range can be used to both filter and group data.
| Date | Date and Time |

| 
|
| Month | Year |

| 
|
| Hour | Relative |

| 
|
Note: If you don't like how dates are formatted in filter dropdowns or group rows, you can easily apply your own formatting. The DateTimeHandling property exposes a number of sub-properties for this purpose. Each sub-property corresponds to a particular time range - a year, month, etc. Thus you can specify formatting for items that represent a year separate from items that represent a month.
|