Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在运行时将客户端事件添加到ASP.Net自定义控件_Asp.net_Javascript_Asp.net Ajax - Fatal编程技术网

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

在运行时将客户端事件添加到ASP.Net自定义控件,asp.net,javascript,asp.net-ajax,Asp.net,Javascript,Asp.net Ajax,我正在构建一个ASP.net自定义控件,该控件实现IScriptControl。我希望我的控件的其他用户能够将客户端事件处理程序分配给该控件。不幸的是,IScriptControl生成的JS总是注入到呈现页面的最底部(见下文),因此任何在ASPX页面中分配事件处理程序的尝试都会失败,因为代码执行得太早 ... <script type="text/javascript"> //<![CDATA[ Sys.Application.initialize(); Sys.Applic

我正在构建一个ASP.net自定义控件,该控件实现
IScriptControl
。我希望我的控件的其他用户能够将客户端事件处理程序分配给该控件。不幸的是,
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>
。。。
//

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

实际上,他们可以使用javascript库中类似jQuery的任何一种添加事件处理程序,方法是:

$(document).ready(function(){

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

});
$(文档).ready(函数(){
$('#')。单击(函数(e){
//做点什么。。。
});
});
HTH.

检查此项

Sys.Application.add_load(handler);

这是一个复杂的小自定义控件,要处理的事件与任何特定DOM元素上的事件都不对应。处理程序必须应用于在IScriptControl生成的代码中创建的对象。不幸的是,在执行任何其他脚本块之后,该对象将被删除。