繁体   English   中英

ASP.NET AJAX服务器控件-检测控件的实例化

[英]ASP.NET AJAX Server Control - Detecting Instantiation of Control

我正在创建一个自定义.NET AJAX服务器控件,并且需要访问与该控件关联的JavaScript对象功能。 我可以通过使用$ find方法在ScriptManager中找到控件来做到这一点。 但是,我需要确定何时可以调用$ find。 如果我在HTML页面正文的“ onload”事件上执行此操作,则它将找不到控件。 因此,我最终不得不在每次连接事件时都找到控件,并且我的代码最终看起来像这样:

function button1_click() {
    var control = $find("<%=Control.ClientID%>");
    control.DoSomething();
}

function button2_click() {
    var control = $find("<%=Control.ClientID%>");
    control.DoSomethingElse();
}

我宁愿一次存储该控件,并在其余的事件调用中使用它。 因此,我希望代码最终看起来像这样:

var _control = null;
function load() {
     _control = $find("<%=Control.ClientID%>");
}

function button1_click() {    
    _control.DoSomething();
}

function button2_click() {
    _control.DoSomethingElse();
}

让我知道这是否没有道理。 我是创建这些自定义控件的新手,所以我还不确定该术语。 谢谢你的帮助!

在初始化ASP.NET Ajax客户端框架之前,将发生“加载” DOM事件。 通过处理Sys.Application对象的init事件来初始化客户端控件。 这就是为什么输出ASP.NET Ajax控件的初始化脚本的原因:

Sys.Application.add_init(function() {
    $create( ... )
});

您可以使用Sys.Application对象的加载事件或其快捷方式pageLoad方法。 它发生在init事件之后,然后将初始化所有ASP.NET Ajax控件。 这是一些示例代码:

var _control = null;

function pageLoad() {
    _control = $find("<%= Control1.ClientID %>");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM