在运行时将客户端事件添加到ASP.Net自定义控件

时间:2010-04-06 18:09:39

标签: asp.net javascript asp.net-ajax

我正在构建一个实现IScriptControl的ASP.net自定义控件。我希望我的控件的其他用户能够将客户端事件处理程序分配给控件。不幸的是,由IScriptControl生成的JS总是被注入到渲染页面的最底层(见下文),因此任何在ASPX页面中分配事件处理程序的尝试都会失败,因为代码执行得太早。

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

在页面加载时将事件处理程序分配给实例化控件的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

检查此

Sys.Application.add_load(handler);

答案 1 :(得分:0)

实际上,他们可以使用任何javascript库添加事件处理程序,如jQuery使用:

$(document).ready(function(){

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

});

HTH。