Hello,
I'm using an UltraWinGrid.I would like to use something like an UltraCombo in a cell.But UltraCombo doesn't support a "Filter UI Type = Filter row".As my customers could have many data, it is better to provide something for filtering.One item of this "UltraCombo" will have 3 or 4 columns.I tryed with an UltraTextEditor defined as the EditorComponent.
On the button Right, I defined A DropDowEditorButton with an another UltraWinGrid as Control.But I don't understand how I can get the selected row of my "sub UltraGrid"?
Thanks.
Hello Ivan
The UltraCombo does not match my expectations because datasource of the ultracombo is different on each row.
here is an example:
R1 - "Toto" - RetrictData = true UltraCombo DataSource = [ { "TO1" , "Toto company" } , { "TOTO" , "Toto sarl" } ]
R2 - "Mim" RestrictData = true UltraCombo DataSource = [ { "MM1" , "Master Information Manager" } , { "MX" , "Mini Mouse" } ]
R3 - "Alien" RestrictData = false UltraCombo DataSource = [ all the third parts of the company ]
The number of all third parts of the company could be more than 300 000.
An another behavior, is when the RestrictData value (bool) is changed.
- When true, then the UltraCombo dataSource is a sublist of all thirdParts.
- When false, then the UltraCombo dataSource the list of all thirdParts.
I tried with the event BeforeEnteringInEditMode but:
If I don't call the UltraCombo.DataBind() method, the number of item in the UltraCombo will not be refresh.
If I call the UltraCombo.DataBind() method, the processing time should be more than 15 seconds which is not acceptable and not usable.
Do you have a "trick" that should match with my expectations?
Thank you Ivan.
But there is something a little more complicated.
The datasource of this ultracombo is different on each row.
Here is an example:
R1 - "Toto company" - [{"toto1","TOTO SARL","Customer"},{"toto35","TOTO Company","Customer"}]
R2 - "Mimi" -[{"mim124","Mim wood","Customer"},{"mmmi","Mim paramedic","Provider"}]
R3 - "Alien" - [the datasource should contains all the third parts]
The number of all third parts could be more than 300000 rows.
I Tried with the event BeforeEnteringInEditMode, but:
If I don't call the UltraGrid.DataBind(), the number of rows should be the first number of rows. I this example: 2 but there are 300000 thirdparts.
If I call the UltraGrid.DataBind(), the process time is to long (more than 10 seconds). That's not acceptable and not usable.
Do you have a trick to do that fastly?
Thanks
Hello Christophe,
The sample that I attached above displays how a search inside the data of the UltraCombo could be done AutoCompoleteMode and AutoSuggestFilterMode, which apply the search based on the DisplayMember of the UltraCombo. This is a simple approach that is useful if you don’t need any complex filtering. If you need more complex way of applying filtering I can suggest you taking a look at this forum post. It describes how the BeforeCellListDropDown can be cancelled and how to show an UltraGrid in the place of the dropdown list of the combo. In this UltraGrid you can set FilterRow as its FilterUIType, however you would need to handle the size and the location of the gird, its visibility as well as the selection of values.
Please let me know if have any questions.
Regards, Ivan Kitanov
I'm the creater of this post.
But, for "filter" an UltraCombo, you have to clic on the filter icon, select the type of filter (equals, contains, like.....) and the n define the value filter.
My expecation is to avoid these clics. Is there a way to have the Filter in a filter row, like inside an Ultragrid?
If it's not possible, which class/interface should my custom control implement to be definable as an EditorComponent and to do the trick?
Best regards.
In order to display multi-column dropdown inside the UltraGrid, what I can suggest you is using UltraCombo as an editor component of the column you wish to use it in. After that in order to enable search/filter like functionality you need to set the AutoCompoleteMode and AutoSuggestFilterMode for the needs of your application. Please note that these properties should be set on the column itself, not on the editor component.
I am attaching a sample that demonstrates this. To be able to search/filter the UltraCombo I have used the AutoCompleteMode to Suggest, which shows only the values that match a certain criteria. By setting the AutoSuggestFilterMode to Contains, the UltraCombo will show only the values that match the filter mode criteria, containing the value that the user typed based on the DisplayMember that was set to the editor component.
Please test the sample on your side and let me know if you have any questions.
UltraComboSearch.zip