2012-03-01 1 views
2

J'ai le ModalPopupExtender suivant qui contient un AJAX ComboBox, RequiredFieldValidator et ValidatorCalloutExtender. En dehors de ModalPopup, ce code exact fonctionne. En outre, ValidatorCalloutExtender dans ModalPopup fonctionne sur d'autres contrôles tels que TextBoxes. Cependant, ce qui suit ne fonctionne pas. La valeur '0' (par défaut) peut être sélectionnée et le validateur ne s'affiche pas.ValidatorCalloutExtender pour un RequiredFieldValidator sur un AJAX ComboBox à l'intérieur d'un UpdatePanel n'affiche pas

Cependant si je prends le ComboBox AJAX et mis dans une traditionnelle ASP.NET DropDownList à la place, cela fonctionne comme prévu et montre la ValidatorCalloutExtender. J'ai utilisé la barre d'outils du développeur et je ne vois rien dans l'ordianry.

Que dois-je faire pour que ValidatorCalloutExtender fonctionne avec AJAX ComboBox dans ModalPopup?

Merci!

ne fonctionne pas:

<asp:Panel ID="pnlData" runat="server" > 
<table> 
    <tr> 
    <td> 
     <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
     <act:ComboBox ID="cbx1" runat="server" Width="278px" DropDownStyle="DropDownList" AutoCompleteMode="SuggestAppend" CaseSensitive="false" AppendDataBoundItems="true" ToolTip="Select the Name."> 
      <asp:ListItem Text="(Please Select the Name)" Value="0" /> 
     </act:ComboBox> 
     <asp:RequiredFieldValidator ID="cbx1Req" runat="server" ControlToValidate="cbx1" 
      SetFocusOnError="true" ErrorMessage="Please Select the Name." 
      InitialValue="0" Display="None" /> 
     <act:ValidatorCalloutExtender ID="cbx1ReqE" runat="server" 
      TargetControlID="cbx1Req" PopupPosition="Right" /> 
     </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="btnAdd" EventName="Click" /> 
     </Triggers> 
    </asp:UpdatePanel> 
    </td> 
    </tr> 
</table> 
</asp:Panel> 

<act:ModalPopupExtender ID="DataMPE" runat="server" 
    TargetControlID="="btnHidden" 
    PopupControlID="pnlData" /> 

<asp:Button ID="btnHidden" runat="server" Text="Modal Display (Hidden)" style="display:none" /> 

Works (si je remplace le contrôle ComboBox AJAX dans le code ci-dessus avec un traditionelles ASP.NET DropDownList):

<asp:DropDownList ID="cbx1" runat="server" Width="300px" AppendDataBoundItems="true"> 
    <asp:ListItem Text="(Please Select A Name)" Value="0" /> 
</asp:DropDownList> 

Répondre

0

Je ne sais pas si cela peut aider , J'ai eu ce problème avec un validateur requis.

Si trouvé une solution ici: http://ajaxcontroltoolkit.codeplex.com/workitem/24417

javascript dû ajouter pour modifier la propriété ControlToValidate pour la zone de texte interne.

string script = string.Format(@"if({0}) {0}.controltovalidate = ""{1}_TextBox"";", this.reqValidator.ClientID, this.ddlCombo.ClientID); 

ScriptManager.RegisterStartupScript(this, this.GetType(), string.Format("validator trick for {0}", this.ClientID), script, true); 
Questions connexes