2009-08-10 7 views
0

Dans mon projet actuel, je crée un certain nombre de contrôles utilisateur, dont certains incluent un code JavaScript personnalisé pour la gestion des événements côté client. J'enregistre mes gestionnaires d'événements en utilisant OnClientClick = "function()" et similaires.Assurer des identificateurs JavaScript uniques dans les contrôles utilisateur Web ASP.NET

Maintenant, je me demande comment m'assurer que tous les noms de fonctions Javascript sont uniques pour chaque instance spécifique du contrôle, donc je ne risque pas de conflits de noms entre les contrôles. J'ai pensé à mettre toutes les fonctions à l'intérieur d'un objet nommé, comme

var <%=ClientID%>_Script { 
    method1: function() { ...} 
} 

et inscrivez-vous à des événements en utilisant quelque chose comme

OnClientClick="<%=ClientID%>_Script.methodName()" 

Il semble tout comme je ne peux pas, mais <% =%> - expressions à l'intérieur des attributs OnClient *. Je me demande donc; Y a-t-il des «meilleures pratiques» pour ce faire?

Répondre

1

La solution la plus rapide peut-être d'avoir simplement un gestionnaire d'événements générique qui délègue au gestionnaire approprié:

OnClientClick="handleClick(this)" 

this dans le cadre de l'attribut onclick est l'élément courant étant cliqué.

La méthode ASP.NET serait register the client script. Plus précisément, voir leurs recommandations sous Référencer les contrôles rendus à l'intérieur d'autres contrôles (créer dynamiquement un script et l'enregistrer.)

Questions connexes