2009-06-15 3 views
0

Je suis en train d'utiliser le code suivant pour obtenir une référence à un ModalPopupExtender, mais quand je vérifie la valeur de la variable javascript « modal » il est toujours nul. Quelle est la bonne façon d'obtenir une référence au contrôle AJAX en utilisant javascript?la difficulté à obtenir une référence à un ModalPopupExtender en utilisant javascript

.vb

 Dim myStringBuilder As New StringBuilder(246) 
     myStringBuilder.AppendFormat("  <script type=""text/javascript"">{0}", Environment.NewLine) 
     myStringBuilder.AppendFormat("   var modal = $find('<%=modal1.ClientID%>');{0}", Environment.NewLine) 
     myStringBuilder.AppendFormat("   debugger;{0}", Environment.NewLine) 
     myStringBuilder.AppendFormat("   $find('<%=modal1.ClientID%>').add_showing({0}", Environment.NewLine) 
     myStringBuilder.AppendFormat("    function(){0}", Environment.NewLine) 
     myStringBuilder.AppendFormat("    {{{0}", Environment.NewLine) 
     myStringBuilder.AppendFormat("     alert(""Modal popup will be showing"");{0}", Environment.NewLine) 
     myStringBuilder.AppendFormat("    }}{0}", Environment.NewLine) 
     myStringBuilder.AppendFormat("   );{0}", Environment.NewLine) 
     myStringBuilder.AppendFormat("  </script>{0}", Environment.NewLine) 
     ClientScript.RegisterStartupScript(Me.GetType(), "myJSalert", myStringBuilder.ToString()) 

.aspx

 <ajaxToolkit:ModalPopupExtender ID="mpeResetConfirm" runat="server" 
     TargetControlID="btnReset" PopupControlID="pnlConfirmation" BehaviorID="modal1"/> 

Répondre

1

Je soupçonnais qu'une partie du problème était que les popupextenders n'avaient pas été rendus au moment de l'appel du script. Donc, après google, j'ai trouvé cet article: http://forums.asp.net/p/1413275/3112082.aspx#3112082. Voici la solution que je fini avec:

.aspx

<ajaxToolkit:ModalPopupExtender ID="mpeResetConfirm" runat="server" 
    TargetControlID="btnReset" PopupControlID="pnlConfirmation" BehaviorID="modal1"/> 
    <script type="text/javascript" language="javascript"> 
     function pageLoad() 
     { 
      var modal = $find('modal1'); 
      debugger; 
      $find('modal1').add_showing(
       function() 
       { 
        alert("Modal popup will be showing"); 
       } 
      ); 
     } 
    </script> 
+0

J'ai lutté avec cela pendant trop d'heures, belle trouvaille! – LowTide

0

Essayez

$find('IDofModalPopupExtender') 

au lieu de

$find('<%=modal1.ClientID%>') 
+0

Je reçois cette erreur: « null » est nulle ou non un objet – swolff1978

+0

Avez-vous remplacé « IDofModalPopupExtender » avec l'ID de votre extension? En outre, d'où avez-vous obtenu «nul»? –

+0

oui. mon codebehind a maintenant var modal = $ find ('mpeResetConfirm'). Je vérifie la valeur de la variable 'modal' quand l'exécution fait une pause sur le débogueur; déclaration et il montre null. Quand je continue l'exécution un message d'erreur apparaît et dit 'null' est nul ou pas un objet. – swolff1978

Questions connexes