I previously had multiple ValidatorCalloutExtenders targeting several RequiredFileValidators working correctly within my application.
I re-installed the latest version of the AjaxControlToolkit and now none of them are firing properly.
I have several other toolkit controls that work perfectly fine, but it appears the ValidatorCalloutExtendor is the only one not being displayed. I can also see the required field validator is working properly because the for will not submit as would be expected when the field is empty.
Here is a sample of one of the controls in question:
```
<asp:RequiredFieldValidator ID="RequiredLogin" runat="server" ErrorMessage="***Please enter a Login" ControlToValidate="txtUserLogin" ValidationGroup="UserLogin" CssClass="validationControl" Display="None"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="RequiredLogin_ValidatorCalloutExtender" runat="server" Enabled="True" TargetControlID="RequiredLogin" >
</ajax:ValidatorCalloutExtender>
```
I have looked across the internet and am at a loss as to why this is happening. Any help you can provide would be greatly appreciated.
Thanks!
Sean
Comments: I am experiencing exactly the same issue. I have an application that uses a MultiView inside of an UpdatePanel to render different sections of a questionnaire. Validation takes place for the questions in the current MultiView View, then the View is changed to show the next set of questions. Every question has 0 or more validators. Each validator has an associated ValidatorCalloutExtender. __With .Net 4.5 ValidationSettings:UnobtrusiveValidationMode = None__ Everything works perfectly. The callouts appear on all pages. ie: even after an async postback in the UpdatePanel. __With .Net 4.5 ValidationSettings:UnobtrusiveValidationMode = WebForms__ Not so good. Callouts appear on the first page, but once an async postback has taken place, I never get the popups to appear in subsequent pages. Things I've noted: The validation does take place, but the callouts just don't show. Manually calling Page_ClientValidate() does not help. The script section at the end of the UpdatePanel async response contains a set of calls to Sys.Application.add_init. I don't believe these are actually getting triggered. Example: |753|scriptStartupBlock|ScriptContentNoTags|Sys.Application.add_init(function() { $create(Sys.Extended.UI.ValidatorCalloutBehavior, {"ClientStateFieldID":"ctl00_cphbody_ctl00_cphbody_rfvRadioButtonList_251223_ValExtender_ClientState","closeImageUrl":"/WebResource.axd?d=LrvkezJbsl2BEeIeXHrWqCfpRBrE390qt3kH5bd_jsCwP8FDj4ExKv1p4KcgVbV-DodE-FinDdcN53e77-9wVvg12MgrvYyqwDTp4UGDkhfvKusHoOm1fC5eE8a1YqeYmNH5zA2\u0026t=635575278053280929","highlightCssClass":"NotValidData","id":"ctl00$cphbody$rfvRadioButtonList_251223_ValExtender_bhv","warningIconImageUrl":"/WebResource.axd?d=34J_vvkU_sQ9WMlWXHr5x_j4fSWVe3lehz3PKvJzgrkauHqdfPoMFTS2-0mlyuCcBg9oOtK2rKJeMAYvv1e_56b2AfaqvXP6KXAqzUOv_l9W-YN9x4SvnqHfV2T2uBy1UC0aLg2\u0026t=635575278053280929"}, null, null, $get("rfvRadioButtonList_251223")); }); Now, after the async postback has taken place, if I manually call the $create (contained in the add_init function) for each of the ValidatorCalloutExtenders, then the callouts work when the page is submitted. Ta Dah!!! So it looks to me like there is an issue around the timing of when these scripts get run after the UpdatePanel gets its response. I really want to turn on unobtrusive validation for this app, to reduce the page size, but I'm not currently in a position to remove the ValidatorCallouts as a method for displaying invalid fields. I'm currently looking to write a workaround that checks if the postback was async and to manually call the $create methods for all of the ValidatorCallouts. That's proving to be difficult. Any chance of a fix for this???
I re-installed the latest version of the AjaxControlToolkit and now none of them are firing properly.
I have several other toolkit controls that work perfectly fine, but it appears the ValidatorCalloutExtendor is the only one not being displayed. I can also see the required field validator is working properly because the for will not submit as would be expected when the field is empty.
Here is a sample of one of the controls in question:
```
<asp:RequiredFieldValidator ID="RequiredLogin" runat="server" ErrorMessage="***Please enter a Login" ControlToValidate="txtUserLogin" ValidationGroup="UserLogin" CssClass="validationControl" Display="None"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="RequiredLogin_ValidatorCalloutExtender" runat="server" Enabled="True" TargetControlID="RequiredLogin" >
</ajax:ValidatorCalloutExtender>
```
I have looked across the internet and am at a loss as to why this is happening. Any help you can provide would be greatly appreciated.
Thanks!
Sean
Comments: I am experiencing exactly the same issue. I have an application that uses a MultiView inside of an UpdatePanel to render different sections of a questionnaire. Validation takes place for the questions in the current MultiView View, then the View is changed to show the next set of questions. Every question has 0 or more validators. Each validator has an associated ValidatorCalloutExtender. __With .Net 4.5 ValidationSettings:UnobtrusiveValidationMode = None__ Everything works perfectly. The callouts appear on all pages. ie: even after an async postback in the UpdatePanel. __With .Net 4.5 ValidationSettings:UnobtrusiveValidationMode = WebForms__ Not so good. Callouts appear on the first page, but once an async postback has taken place, I never get the popups to appear in subsequent pages. Things I've noted: The validation does take place, but the callouts just don't show. Manually calling Page_ClientValidate() does not help. The script section at the end of the UpdatePanel async response contains a set of calls to Sys.Application.add_init. I don't believe these are actually getting triggered. Example: |753|scriptStartupBlock|ScriptContentNoTags|Sys.Application.add_init(function() { $create(Sys.Extended.UI.ValidatorCalloutBehavior, {"ClientStateFieldID":"ctl00_cphbody_ctl00_cphbody_rfvRadioButtonList_251223_ValExtender_ClientState","closeImageUrl":"/WebResource.axd?d=LrvkezJbsl2BEeIeXHrWqCfpRBrE390qt3kH5bd_jsCwP8FDj4ExKv1p4KcgVbV-DodE-FinDdcN53e77-9wVvg12MgrvYyqwDTp4UGDkhfvKusHoOm1fC5eE8a1YqeYmNH5zA2\u0026t=635575278053280929","highlightCssClass":"NotValidData","id":"ctl00$cphbody$rfvRadioButtonList_251223_ValExtender_bhv","warningIconImageUrl":"/WebResource.axd?d=34J_vvkU_sQ9WMlWXHr5x_j4fSWVe3lehz3PKvJzgrkauHqdfPoMFTS2-0mlyuCcBg9oOtK2rKJeMAYvv1e_56b2AfaqvXP6KXAqzUOv_l9W-YN9x4SvnqHfV2T2uBy1UC0aLg2\u0026t=635575278053280929"}, null, null, $get("rfvRadioButtonList_251223")); }); Now, after the async postback has taken place, if I manually call the $create (contained in the add_init function) for each of the ValidatorCalloutExtenders, then the callouts work when the page is submitted. Ta Dah!!! So it looks to me like there is an issue around the timing of when these scripts get run after the UpdatePanel gets its response. I really want to turn on unobtrusive validation for this app, to reduce the page size, but I'm not currently in a position to remove the ValidatorCallouts as a method for displaying invalid fields. I'm currently looking to write a workaround that checks if the postback was async and to manually call the $create methods for all of the ValidatorCallouts. That's proving to be difficult. Any chance of a fix for this???