2015-11-02 54 views
0

我有一个有趣的错误发生,其中我的ajaxtoolkit:ValidatorCalloutExtender的任何一个都不会显示,除了第一个多个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> 
+0

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

回答

1

这是设计。如果你看一看ValidatorCallout.js Show()函数,你会看到线:

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

这可以防止未来标注打开。 你可以简单地删除这些行和/或发布问题到Ajax Control Toolkit问题跟踪器:https://ajaxcontroltoolkit.codeplex.com/workitem/list/basic