2010-04-06 3 views
0

Je suis en train de créer un contrôle personnalisé ASP.net qui implémente IScriptControl. Je voudrais que les autres utilisateurs de mon contrôle puissent affecter des gestionnaires d'événements côté client au contrôle. Malheureusement, le JS généré par IScriptControl est toujours injecté tout en bas de la page affichée (voir ci-dessous). Par conséquent, toute tentative d'affectation d'un gestionnaire d'événements dans la page ASPX échoue car le code s'exécute trop tôt. Quelle est la bonne façon d'assigner un gestionnaire d'événements au contrôle instancié lors du chargement de la page? Ajout d'événements côté client au contrôle personnalisé ASP.Net au moment de l'exécution

... 
<script type="text/javascript"> 
//<![CDATA[ 
Sys.Application.initialize(); 
Sys.Application.add_init(function() { 
    $create(MyNamespace.MyControl, {}, null, null, $get("my_control_id")); 
}); 
//]]> 
</script> 
</form> 

Répondre

2

Check Ce

Sys.Application.add_load(handler); 
+0

Ça l'a fait! w00t. –

0

En fait, ils seraient en mesure d'ajouter le gestionnaire d'événements à l'aide de toute la bibliothèque javascript est comme jQuery en utilisant:

$(document).ready(function(){ 

$('#<%= my_control_id.ClientId%>').click(function(e){ 
    // do something... 
}); 

}); 

HTH.

+0

Ceci est un petit contrôle personnalisé complexe, et l'événement à traiter ne correspond pas à un événement sur un élément DOM particulier. Le gestionnaire doit être appliqué à l'objet créé dans le code généré par IScriptControl. Malheureusement, l'objet après tous les autres blocs de script ont été exécutés. –

Questions connexes