1

Lorsque j'essaie d'appeler une fonction javascript dans un contrôle utilisateur chargé dynamiquement, il ne trouve pas la fonction spécifiée. J'ai un contrôle d'utilisateur pour organizationDetails.ascx. Là, j'utilise modal popup extender pour obtenir des informations de l'utilisateur, puis je vérifie l'adresse via google et suggère le bon format. J'essaie d'utiliser un script java pour une fonction appelée onBlur d'un textbox mais le firebug mozilla dit que la fonction n'est pas définie, ce qui n'est pas le cas. Ce serait génial si quelqu'un pouvait m'aider ici.Comment créer et appeler une fonction javascript sur un contrôle utilisateur chargé dynamiquement?


ÉDITÉ: Le javascript est sur la page ascx au début et à la usercontrol est chargé à l'aide de la classe de base pour afficher les détails d'organisation et de les modifier.

La page ascx comporte les balises suivantes dans le panneau appelé par le popup modal.

   <padrap:DropDownList ID     ="ddlStateID" 
             onChange   ="setContextKey2()" 
             runat    ="server" /> 

          <br />     
       <padrap:Label   ID     ="lCity" 
             Text    ="City: " 
             AssociatedControlID ="tbrCity" 
             runat    ="server" 
             CssClass   ="col2"/>      


       <asp:TextBox   ID     ="tbrCity" 
             onBlur    ="setContextKey2()" 
             runat    ="server" />       


       <br /> 

<script type="text/javascript"> 
    alert('i hate javascript'); 

    var dependentBehaviors = [ 
      'tbCity_ace_b' 
     ]; 

     var address = {}; 
    function setContextKey2(){ 
    //some javascript 
      address.addressLine1 = $get('<%=tbrAddressID1.ClientID %>').value; 
      address.addressLine2 = $get('<%=tbrAddressID1.ClientID %>').value; 
      address.addressLine3 = $get('<%=tbrAddressID1.ClientID %>').value; 
      address.countryISO2 = $get('<%=ddlCountryID.ClientID%>').value; 
      address.stateCode = $get('<%=ddlStateID.ClientID%>').value; 
      address.city = $get('<%=tbrCity.ClientID%>').value; 
      address.postalCode = $get('<%=tbrPostalCode.ClientID%>').value; */ 

      var contextStr = Sys.Serialization.JavaScriptSerializer.serialize(address) 

      var behavior = $find('tbCity_ace_b') 
      behavior.set_contextKey(contextStr); 

      var behavior2 = $find('tbPostalCode_ace_b') 
      behavior2.set_contextKey(contextStr); 
    } 
</script> 

La fonction de setContextKey2() est définie au début de la page. S'il vous plaît laissez-moi savoir si vous avez besoin de plus d'informations.

Merci, Ratan

+0

Peut-être que vous pourriez fournir un code source ?! Où inscrivez-vous le javascript, dans codebehind ou sur aspx/ascx? L'usercontrol est-il visible et chargé? –

+0

J'ai posté le code correspondant .. laissez-moi savoir si vous avez besoin de plus. Merci. – Ratan

Répondre

1

Hey ce lien pourrait aider. Il est une question très Simular

Jquery and Ajax Post issue


ÉDITÉ

Le problème est votre appel ajax est pas l'enregistrement de votre balise de script. Si vous mettez le script sur votre page principale et non sur l'ascx, cela fonctionnera. Ou vous pouvez obtenir la balise de script de la réponse ajax, puis l'enregistrer avec le dom.

+0

Ce n'est pas exactement ce que je veux .. si vous regardez le code que j'ai attaché .. Aucun des javascript sur le contrôle se charge .. Est-ce un bug dans ajax? – Ratan

+0

J'ai essayé la première méthode plus tôt mais cela n'a pas fonctionné, comment puis-je aller avec ce dernier? Je suis nouveau avec ajax .. Merci, Ratan – Ratan