Hi,
I have a bounded Ultracombo having following items in the list.
ID Code--------------------1 A 2 B3 Ccombo is binded with a table having two columns, ID and Code. DisplayMember is Code and ValueMember is ID. Whenever we type any data that is not in the list then ValueChanged event is firing twp times. Lets say I typed D in combo then
First time UltraCombo.Value comes as null and second time it comes as the data I typed ( "D" ). This is happening in 9.1 version dlls.In 8.1 version dlls it was working fine ( ValueChanged event was firing only once ). We were using 8.1 dlls and out application was designed to check value null for invalid data. After upgading the dlls all these problems get started.. Its crashing our application..
Are you guys going to fix this bug?
Thanks,Dhananjay
The original behavior of the control was always to return the displayed text as the Value whenever the item does not match an item on the list. It has to be that way, or there would be no way to get the text and whatever the user enters would be lost.
A bug was introduced at some point that changed this behavior so that the control started returning null.
This bug was then fixed and the original behavior was restored to the intended behavior, which is to return the text as the value.
You can use the IsItemInList method to determine if the current value does not exist on the list.
Just to add to this thread, we have also been having exactly the same issue after recently upgrading our Controls to 9.1 (from 6.x).
A lot of our code relied on the fact that the "Value" property would be null when the user decided to free type an entry into the combobox when it didnt exist in the list (so we could determine that it would need to be added to the database as a new item).
Because the "Value" property is now returning the "Text" property we are fairly limited and unsure on what approach to take to resolve the problem (and we need to be cautious with it being a global change affecting all areas of our system).
Initially i thought it would be best posting here to see if any further information had been obtained by anyone on this matter. It would be beneficial if we could determine if this was an intentional change and if it was documented in a specific release (i did an initial search but failed to find anything).
After reviewing our system it would be quite a lot of work to rewrite every instance which is affected by this change to the controls behaviour so im hoping there is an alternative.
Any help or thoughts appreciated.
Regards,
N . Corns
Why would your code set the value to an invalid value?
There's no way within the event to tell. But presumably if your code is setting the Value, you know it's doing to. So you could set a flag.
...anyway, with the last version how can i know if the invalid value comes from an invalid text that the user inputs or if it comes from an invalid value set via code?
i mean... if i set in code:
combo.value = "invalid value" -> then valuechanged raises with value="invalid value" and text="invalid value"
if i write to the combo "invalid value" -> valuechanged raises with value="invalid value" and text="invalid value"
how can i know if valuechanged raised because of what the user inputs or it raised because of a change of the value via code?
I have the same problem when user types an invalid value.... valueChanged came with value=nothing and text=4 in earlier versions, with the last version value=4 and text=4