views:

125

answers:

2

Hi,

I have a UserControl with a Tab Control containing three tabs. Within the tabs are multiple controls - Datetimepickers, textboxes, comboboxes.

There is also a Save button which when clicked, calls this.ValidateChildren(ValidationConstraints.Enabled) Now, I click save and a geniune validation error occurs. I correct the error and then click save again - valdiation errors occur on comboboxes on a different tab. If I navigate to this tab and click save, everything works fine. How can this be? I haven't changed any values in the comboboxes so how can the fail validation then pass validation?

The comboboxes are bound to a dataset with their selectedValue and Text set. I just don't understand what is happening here.

This behaviour also occurs for some textboxes too. The validation rule is that they have to be a decimal - the default value is zero, which is allowed. The same thing happens, they fail validation the first time - I make no changes, click save again and they pass validation.

EDIT:

The error is not a Framework error - the error is the one I provide during my validation routine. e.g Select a valid drop down option.

I stepped through the process and the sometimes the combobox values are the default values other times the selectedvalue is the default but the text is null. I don't see how this can happen if I'm not changing anything in the combobox.

If you need any further information please let me know

thanks

Barry

A: 

Have you checked that the default value is not null ?

thelost
The default value is not Null. The default values are set to valid options from a dataset. e.g SelectedValue is 1 - text is "My Dropdown option text"
Barry
Then could you please post the error message ?
thelost
+2  A: 

The following is a quote from MSDN:

"Controls contained in a TabPage are not created until the tab page is shown, and any data bindings in these controls are not activated until the tab page is shown."

So I'm guessing that if before you press save the first time, you make sure that you've clicked on each tab at least once, it'll work as expected, but if you don't look at all tabs before saving, it fails?

ho1
Thanks Ho - that was what I was missing. I had added some code to iterate through each tab in the Load event of the UserControl and the validation works as expected.I was so confused and concentrating on the Validation I didn't really think it could be anything else.Thanks for your help
Barry