2009-12-09 8 views
1

Cette question peut-être très basique mais pour la vie de moi je ne peux pas le comprendre. J'ai donc un contrôle utilisateur qui est chargé sur une page. Eh bien, dans ce contrôle utilisateur, je veux inclure un fichier js pour certaines fonctions qui ne sont spécifiques à ce contrôle utilisateur. Dans ce fichier js, disons que j'ai une fonction appelée 'MyFunction'. Dans l'événement onclick d'un div je veux appeler cette fonction et je suis incapable de le faire. Toute aide serait grandement appréciée.JS Inclure le fichier du contrôle d'utilisateur ASP.Net

J'utilise le ClientScriptManager de l'objet de la page et je suis censé y compris avec succès le fichier sur la page en utilisant l'appel suivant:

page.ClientScript.RegisterClientScriptInclude(scriptTitle, 
    page.ResolveUrl(scriptUrl)) 

Maintenant, après cela, je me demande, est-il Quelque chose de spécial je dois faire pour pouvoir appeler une fonction qui est dans le fichier include? comme dans mon div:

<div class="someClass" onclick="MyFunction();">Click Me</div> 

Répondre

1

i utilise le ScriptManager/ScriptManagerProxy

<asp:ScriptManager runat="server"> 
    <Scripts> 
    <asp:ScriptReference Path="~/js/myscript.js" /> 
    </Scripts> 
</asp:ScriptManager> 
+0

Ok, je dois être un peu plus clair. Donc, j'utilise le ClientScriptManager de l'objet page et je suis supposé inclure avec succès le fichier sur la page en utilisant l'appel suivant: page.ClientScript.RegisterClientScriptInclude (scriptTitle, page.ResolveUrl (scriptUrl)) Maintenant, après ceci, je me demande, est-ce qu'il y a quelque chose de spécial que je dois faire pour pouvoir appeler une fonction qui est dans le dossier d'inclusion? Comme dans mon div:

Click Me
Keith

+0

Tant que tout ce que vous avez mentionné ci-dessus ne se passe pas dans un alias de post-scriptum async postback alors il devrait fonctionner. Si vous utilisez des panneaux de mise à jour, ScriptManager propose des méthodes statiques que vous pouvez utiliser à la place de Page.ClientScript. –

+0

Ouais pas en utilisant ScriptManager. Mais, j'ai remarqué que depuis que je suis en train d'enregistrer les js, j'utilise le clientcriptmanager dans la page_load et le script n'est pas inclus dans la tête de la page, c'est un peu plus bas. Cela ne devrait pas faire de différence car je fais aussi jQuery de la même manière et ça marche bien. Donc, je suis totalement coincé dans la mesure du possible. – Keith

0

donc en haut de votre page (dans la balise head de votre HTML), sortie la balise de script qui fait référence à votre javascript fichier avec vos fonctions. La méthode d'Al W ci-dessus est soignée. Vous pouvez ensuite, après que le DOM est chargé, assigner les fonctions aux contrôles. Par exemple avec jQuery vous utilisez:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#elementID').click(function(){ 
      // do stuff in here 
     }); 
    }); 
</script> 
+0

Keith

+0

Cela peut-il être fait dans le contexte d'un contrôle utilisateur, cependant? Si la balise