New Visual Studio 2010 WinForms C# project and imported existing form containing IG 2009 controls, which were updated to NetAdvantage 2011.
Our practice and existing code would always first our UltraCombo's datasource = null; before setting the datasource = datatable object returned from a SQL procedure call.
I was shocked to see that if the UltraCombo was already bound to a datatable, the calling of the same method to set a datasource is firing the RowSelected event of the combo when combo.datasource = null; is executed!
Needless to say, this is wreaking havoc in the project and we're looking for direction.
Is this a bug or something new in 2011??
Thanks!
The last event to fire when a row is selected in the UltraCombo is the AfterCloseUp event.
Hi Jaime,
I'm still not able to find any change in behavior here. The behavior in the older version and the latest one still appears to me to be the same.
I agree that changes in behavior are generally not good and we try very hard to avoid these kinds of changes. Sometimes, when fixing a bug, we have to make a judgement call about whether to change the behavior and potentially break existing applications, or leave the old behavior in place, even though it's wrong.
If you can demonstrate for me a behavior that was changed from one version to another, I can at least investigate and see why hat change was made and determine if it was intentional. But so far, every test I run shows the exact same behavior in v9.2 and 11.2.
The fact that your real application is using data from a SQL database is not really relevant to the issue. So if you can create a sample using a BindingList<T> or an UltraDataSource which doesn't rely on any outside data source and therefore I can run it, I'd be happy to check it out.
Did you try reproducing the behavior with the sample I posted here?
I am litterally a day away from having managment make the call to revert back to 9.2 - indefinitely. This application was the test-bed for moving to 11.2 across all applications. It has been a very trying upgrade experience.
Going to summarize one more time. 5 UltraCombos sitting in an UltraGroupBox. The first is the driver, which contains a fixed set of values. Only one of the values in Combo1 drives the visibility of the all 4 of the other Combos. If this value is selected all 4 become visible and the Combo2's datasource is bound to a DataTable from a SQL query. A selection from Combo2 drives another SQL query and the setting of Combo3's datasource. If the query result contains only one record, a Combo3 perform action happens to select the first row. This fires another query for Combo4. This is working flawlessly in our application with version 9.2 of the controls, but I cannot reproduce this functionality after converting to 11.2.
The RowSelected events are firing multiple times and only the first value in Combo2 is being selected regarless of what is selected from its list. The first row selected pass has the proper .text and value values, but the second firing of the event reverts to the first item in the control.
I am starting to think that because the first setting of Combo3's datasource from Combo2's RowSelected event has something to do with the behavior change from 9.2 to 11.2, because Combo3 and Combo4 events are firing before Combo2's RowSelected event can complete. I am guessing that I need to leverage different events in a particular order to be able to reproduce the funtionality the users expect?
What is the last event to fire from an UltraCombo once someone selects (via a mouse click) a value from those that drop down?
The confusion on my part is with the Dropdown Style property. The controls are UltraCombos (all along), but the Dropdown style was set to DropdownList. I had it in my head the controls were drop downs because of this property. Having the combos set to DropdownList is what caused the problems going from 9.2 to 11.x, with the code I had wired to the events as described above.
It the simplest level, It is frustrating when a project is successfully upgraded (using the upgrade tool) to a more recent version of the controls and code you had wired to control events no longer works resulting in an unmanged code exception. In this case it was an evolutionary change on the control, which makes sense. I just wish it had been caught during the upgrade process. I am still struggling trying to use multiple combos in concert with one another where the selections made in the first drive the values in the others, whose datasources need to be first cleared and then bound to new data.
JaimeZ said:The take-away from this is that customers who were able to use UltraDropDown controls as DropDownLists and the .Value property outside of a grid like we did in version 9.2 will run into trouble when updating their project to a more recent version.
There has never been a Value property on UltraDropDown and the UltraDropDown has never been usable as a standalone control. It has always been a control that relies on being used as a dropdown by some other control such as the grid.
So I'm really not sure what you were doing with this control or why it would suddenly start causing a problem when you upgraded.
Your original post says you were using UltraCombo and it looks like you are saying that you tried using UltraDropDown instead as some sort of workaround. Are you now saying that you were using UltraDropDown all along?