簡體   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