RequiredFieldValidators stop working after UdpatePanel postback inside UserControl

164 Views Asked by At

I have a webforms page with 2 UpdatePanels: udpGrid for a gridview and udpFormViews with a ajaxToolkit:TabContainer surrounding 3 tabs for Insert and Editing records from the grid, and a repeater with it's own item template for editing related data to the main record. The edit tab is invisible on Page_Load. Inside the insert and edit tab resides the same Usercontrol which contains a Formview. the formview is set to insert mode by default but has an insert and edit item template with a footer template for save/update/cancel buttons, and when editing The second instance of the usercontrol gets set to edit mode and loaded and shown. It also contains a footer template containing the insert udpate and cancel commandbuttons to trigger the FormView's native inserting/updating/cancel events. RequiredField valdators on the insert FormView UserControl works fine from start and after inserting, but as soon as i do a postback to show the edit FormView usercontrol or the Repeater on hte 3rd tab (which has no relation to the Usercontrol containing the UserControl) the RequiredFieldValidators on the insert formview stop working at all, and even in code validating it's insert-validationgroup returns valid while the requiredField shows empty text in code.

For some reason the insert FormView UserControl loses it's validation logic completely after any postback but it's own Insert, with or without the second instance of the UserControl present. I don't load or change anything to the insert Formview UserControl and i can keep inserting without breaking the Validation but whenever a postback occurs outside of it it breaks. Even updates on the other UpdatePanel (udpGrid) break it and i have no way to test validation on the insert UserControl clientside or serverside using the RequiredFieldValidators. The Edit UserControl does still fire its validators but besides showing the error text on screen it ignores it and still updates the record, also ignoring server side the edit-validationgroup validation.

Does anyone know what is happening? it seems putting these Formvies in UserControls kind of breaks things while using it plain on other pages causes no issues?

Update: i found out that when the RequiredFieldValidation is broken i can still trigger the errortext by filling and emptying the textbox on the clientside. the problem that the page validation on client side and on server side doesnt work correctly persists

1

There are 1 best solutions below

0
Jeroen On

Found out the problem after some extensive digging. I was using ASP:Linkbuttons inside the footer template which didn't do the validation anymore after the UpdatePanel surrouning everything did an update. Even though i used ChildrenAsTriggers="False" on my UpdatePanels it somehow messed up the clientside validation triggers.

I went and moved the buttons into the templates themselves and changed them into ASP:Buttons. I believe i needed the buttons to be Linkbuttons since the normal Buttons wouldn't trigger postbacks with the FormView_ItemUpdating and FormView_ItemInserting events of the Formview in the Footer template, but now that i have dedicated buttons inside the Insert and Edit templates they can be normal Buttons again.

Hope this helps someone out there facing a simular problems.