We have an UltraCombo with multiple columns. It's currently set to AutoCompleteMode = SuggestAppend. We'd like to be able to quickly filter the drop-down by any column without having to use the column filter interface that is built into the column header.
For example:
Last First Middle------- ------- ----------Stevens Robert TannerGeorge Steven PaulBlack George Robert
If the user types "GEO", we'd like it to AutoComplete on the Last name column, but display the last two rows in the dropped-down grid as possible matches (since it also matches on the First name of the last row).
Alternately, we'd like to add an UltraTextEditor above each column (sized the same) when the combo is dropped-down to allow a quick filter on that column.
This will be primarily used in a keyboard-centric environment where a lot of "mousing" is not desired. Using the column filter interface, while feature-rich, is just unwieldy and over-complicated for our users.
Anyone have an idea on how to accomplish DataSource-wide AutoComplete, not just on the DisplayMember?
Hi,
There's no way to do this. The current AutoCompleteMode functionality will only search the DisplayMember column.
Also, the FilterRow is not currently supported for UltraCombo or UltraDropDown. You can turn on the filter icons for the column headers, but this will require a click, so I don' think that is what you want.
The only way to achieve this that I can see would be to create your own DropDown control. You could do this using UltraTextEditor with a DropDownEditorButton on the ButtonsRight collection that contains a WinGrid. Then you could handle the key event of the UltraTextEditor and do the auto-complete yourself.
It's not trivial, but it seems like it can be done. Here's a KB article that describes the basic technique of using the UltraTextEditor and the grid with a dropdown button. This article is doing it to get multi-select functionality, which is not what you want, but the basic approach is the same.
HOWTO:Creating a Multi-Select Dropdown Combo for the WinGrid
Thanks Mike. We tinkered around with it as much as we could, then came across this:
http://dandouglas.wordpress.com/2010/03/05/class-to-add-instant-as-you-type-filter-functionality-to-infragistics-ultracombo-control/
Basically implementing autocomplete by hand over every column. It's probably inefficient as hell since we have to search through EVERY VISIBLE CELL, but it fulfills the requirement. Plus, the fields where this functionality will be enabled on are mainly code/description fields, so it shouldn't have a ton of data.
Here's the meat of our DoPartDropDownFilter (which we named ApplyFilter). It is embedded in our ComboBox that inherits UltraCombo. We override OnKeyUp and OnAfterCloseUp to apply/clear the filter:
foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in this.Rows) { bool filterRow = true; foreach (Infragistics.Win.UltraWinGrid.UltraGridColumn column in this.DisplayLayout.Bands[0].Columns) { if (column.IsVisibleInLayout) { if (row.Cells[column].Text.Contains(this.Text)) { filterRow = false; break; } } } if (filterRow) { row.Hidden = true; } else { row.Hidden = false; } }
Any better ways of handling this that you can think of?
You could make this a lot more efficient by using row.GetCellText instead of accessing the Cells collection and forcing the creation of a cell object.
Hello,
I sent your message directly to our product management team as a feature request. Our product team chooses new feature requests for development based on popular feedback from our customer base. Infragistics continues to monitor application development for all of our products, so as trends appear in requested features, we can plan accordingly.
We value your input, and our philosophy is to enhance our toolset based on customer feedback. If your feature is chosen for development, you will be notified at that time. Your reference number for this feature request is FR13905.
If you would like to follow up on your feature request at a later point, you may contact Developer Support management via email. Please include the reference number of your feature request in the subject and body of your email message. You can reach Developer Support management through the following email address: dsmanager@infragistics.com
Thank you for your request.
Any news for that request ?
Hi Damien,
No, this has not been implemented, yet.
Has there been any further progress made on this feature?
We're currently also looking at hooking into the columnfilters to filter the columns irrespective of the active displaymember.
We have both UltraComboBoxes and ComboBoxes inside Grids that we want to filter.
Hello Nicov,
The latest release of Infragistics has not implemented this functionality. You can submit a product idea on our website at ideas.infragistics.com.
Thank you.