sazr
sazr

Reputation: 25938

Multiple ValidatorCalloutExtender's Doesn't Show

I have a funny error occurring where none of my ajaxtoolkit:ValidatorCalloutExtender's will show except for the first one.

I have 4 RadDatePickers (that sit inside a asp:Wizard) and if I select a date in the first date picker then click 'Next' none of the other ajaxtoolkit:ValidatorCalloutExtender's popup. Note the validators work and stop progressing to the next step but the callout extender popups don't show.

Any ideas what is going wrong?

A full working file can be downloaded here; FileHosting

<asp:Wizard ID="wzdRegister" runat="server" DisplaySideBar="False" FinishCompleteButtonText="Submit" ActiveStepIndex="0">

    <WizardSteps>
        <asp:WizardStep ID="wzsIdentification" runat="server" Title="Identification">

            <telerik:RadDatePicker ID="Expiry" runat="server" ></telerik:RadDatePicker>
            <asp:RequiredFieldValidator ID="rfvExpiry" runat="server" ErrorMessage="Expiry is a required field"
                ControlToValidate="Expiry" Text="*"   />
            <ajaxtoolkit:ValidatorCalloutExtender ID="vcerfvExpiry" runat="Server" TargetControlID="rfvExpiry" Width="350px" HighlightCssClass="highlight"
                WarningIconImageUrl="warning.gif" CloseImageUrl="close.gif" />
            <br />

            <telerik:RadDatePicker ID="RadDatePicker1" runat="server" ></telerik:RadDatePicker>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Expiry is a required field"
                ControlToValidate="RadDatePicker1" Text="*"   />
            <ajaxtoolkit:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="Server" TargetControlID="RequiredFieldValidator1" Width="350px" HighlightCssClass="highlight"
                WarningIconImageUrl="warning.gif" CloseImageUrl="close.gif" />
            <br />

            <telerik:RadDatePicker ID="RadDatePicker2" runat="server" ></telerik:RadDatePicker>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Expiry is a required field"
                ControlToValidate="RadDatePicker2" Text="*"   />
            <ajaxtoolkit:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="Server" TargetControlID="RequiredFieldValidator2" Width="350px" HighlightCssClass="highlight"
                WarningIconImageUrl="warning.gif" CloseImageUrl="close.gif" />
            <br />

            <telerik:RadDatePicker ID="RadDatePicker3" runat="server" ></telerik:RadDatePicker>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="Expiry is a required field"
                ControlToValidate="RadDatePicker3" Text="*"   />
            <ajaxtoolkit:ValidatorCalloutExtender ID="ValidatorCalloutExtender3" runat="Server" TargetControlID="RequiredFieldValidator3" Width="350px" HighlightCssClass="highlight"
                WarningIconImageUrl="warning.gif" CloseImageUrl="close.gif" />
            <br />
        </asp:WizardStep>

        <asp:WizardStep ID="WizardStep1" runat="server" Title="Identification">
            Step 2
        </asp:WizardStep>

        <asp:WizardStep ID="WizardStep2" runat="server" Title="Identification">
            Final Step
        </asp:WizardStep>

    </WizardSteps>

    <StartNavigationTemplate>
        <input type="button" id="btnAccept" class="hidden" title="Accept" value="Accept" onclick="return false;" class="btn" />
        <asp:Button ID="btnNext" runat="server" CommandName="MoveNext" Text="Next" class=" btnNext" />
        <asp:Button ID="btnCancel" runat="server" Text="Cancel" OnClick="btnCancel_Click" Visible="false" class="btn" CausesValidation="false" />
        <asp:Button ID="btnSave" runat="server" Text="Submit" OnClick="btnSave_Click" Visible="false" class="btn" />
    </StartNavigationTemplate>

    <StepNavigationTemplate>
        <asp:Button ID="btnPrevious" runat="server" CommandName="MovePrevious" Text="Previous" CausesValidation="false" class="btn" />
        <asp:Button ID="btnNext" runat="server" CommandName="MoveNext" Text="Next" class="btn" />
        <asp:Button ID="btnCancel" runat="server" Text="Cancel" OnClick="btnCancel_Click" Visible="false" class="btn" CausesValidation="false" />
        <asp:Button ID="btnSave" runat="server" Text="Submit" OnClick="btnSave_Click" Visible="false" class="btn" />
    </StepNavigationTemplate>

    <FinishNavigationTemplate>
        <asp:Button ID="btnSubmit" runat="server" CommandName="MoveComplete" Text="Submit" class="btnNext" />
    </FinishNavigationTemplate>
</asp:Wizard>

Upvotes: 0

Views: 314

Answers (1)

Mikhail Tymchuk
Mikhail Tymchuk

Reputation: 896

This is by design. If you take a look at ValidatorCallout.js show() function you will see the lines:

if(Sys.Extended.UI.ValidatorCalloutBehavior._currentCallout != null)
    return;

This prevents next callouts from opening. You can simply remove this lines and/or post an issue to Ajax Control Toolkit issue tracker: https://ajaxcontroltoolkit.codeplex.com/workitem/list/basic

Upvotes: 1

Related Questions