【问题标题】:Multiple ValidatorCalloutExtender's Doesn't Show多个 ValidatorCalloutExtender 不显示
【发布时间】:2016-02-01 19:27:34
【问题描述】:

我发生了一个有趣的错误,我的ajaxtoolkit:ValidatorCalloutExtender 中没有一个会为第一个显示除了

我有 4 个RadDatePickers(位于asp:Wizard 内),如果我在第一个日期选择器中选择一个日期,然后单击“下一步”,其他ajaxtoolkit:ValidatorCalloutExtender 的弹出窗口均不会出现。请注意验证器工作并停止进行下一步,但标注扩展器弹出窗口不显示。

有什么想法吗?

完整的工作文件可以在这里下载; 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>

【问题讨论】:

  • 如果我们用简单的 asp:TextBox 替换 telerik:RadDatePicker 结果会一样吗?

标签: asp.net webforms telerik ajaxcontroltoolkit


【解决方案1】:

这是设计使然。如果您查看 ValidatorCallout.js show() 函数,您将看到以下行:

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

这可以防止打开下一个标注。 您可以简单地删除此行和/或将问题发布到 Ajax Control Toolkit 问题跟踪器:https://ajaxcontroltoolkit.codeplex.com/workitem/list/basic

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多