首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CollapsiblePanelExtender:无法在页面的onLoad中获取对象(AJAX Toolkit)

CollapsiblePanelExtender:无法在页面的onLoad中获取对象(AJAX Toolkit)
EN

Stack Overflow用户
提问于 2012-07-18 16:02:32
回答 2查看 912关注 0票数 0

我需要在页面的Javascript页面上为CollapsiblePanelExtender添加一个Javascript事件。以下是CollapsiblePanelExtender的定义

代码语言:javascript
复制
    <cc1:CollapsiblePanelExtender ID="cpe" runat="Server" TargetControlID="pnlInstances" 
     BehaviorID="cpe" ImageControlID="lnkWebroleAction" ExpandedImage="~/App_Themes/Default/images/MonitorDownArrow16.png"CollapsedImage="~/App_Themes/Default/images/MonitorLeftArrow16.png" 
     CollapsedSize="0" Collapsed="false" ExpandControlID="lnkWebroleAction" CollapseControlID="lnkWebroleAction"
     AutoCollapse="false" AutoExpand="false" ExpandDirection="Vertical" SuppressPostBack="true" />

下面是我正在执行的Javascript代码:

代码语言:javascript
复制
window.onload = pageLoad1();
    function pageLoad1() {$find("cpe").add_expandComplete(coll_ExpandedComplete);                                
    }

问题是$find("cpe")在此事件上返回null。如果我从按钮点击中执行相同的函数,我可以找到对象。

我还可以使用Javascript的哪些其他加载事件?我已经试过$(documnt).ready了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-18 16:57:12

您没有将pageLoad1函数赋值给window.onload,而是立即调用它并赋值给它的返回值(即undefined)。

你必须这样写:

代码语言:javascript
复制
window.onload = pageLoad1;  // No parenthesis.
function pageLoad1() {
    $find("cpe").add_expandComplete(coll_ExpandedComplete);
}

或者,编写一个pageLoad()函数,该函数将在页面加载完成时由框架自动调用:

代码语言:javascript
复制
function pageLoad() {
    $find("cpe").add_expandComplete(coll_ExpandedComplete);
}
票数 1
EN

Stack Overflow用户

发布于 2012-11-28 20:15:53

我同意OP的观点;在最初的帖子中有一个错误(正如原始回答者指出的),这足以让它看起来这里没有真正的问题;但我有一个复杂的JS/Ajax驱动页面,以及一些代码,它们试图通过JS函数中的BehaviorID获取一些ASP.NET Ajax CollapsiblePanelExtender对象,该JS函数/是/调用在PageLoad上。

这些对象通常是准备好的,但有时不是;如果尝试以轻微延迟(100ms)运行代码,它们就准备好了。但是,延迟一段固定的时间并不好;我可以使用什么事件来了解这些ASP.NET Ajax对象已经完成了自身的构建?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11536810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档