我需要在页面的Javascript页面上为CollapsiblePanelExtender添加一个Javascript事件。以下是CollapsiblePanelExtender的定义
<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代码:
window.onload = pageLoad1();
function pageLoad1() {$find("cpe").add_expandComplete(coll_ExpandedComplete);
}问题是$find("cpe")在此事件上返回null。如果我从按钮点击中执行相同的函数,我可以找到对象。
我还可以使用Javascript的哪些其他加载事件?我已经试过$(documnt).ready了。
发布于 2012-07-18 16:57:12
您没有将pageLoad1函数赋值给window.onload,而是立即调用它并赋值给它的返回值(即undefined)。
你必须这样写:
window.onload = pageLoad1; // No parenthesis.
function pageLoad1() {
$find("cpe").add_expandComplete(coll_ExpandedComplete);
}或者,编写一个pageLoad()函数,该函数将在页面加载完成时由框架自动调用:
function pageLoad() {
$find("cpe").add_expandComplete(coll_ExpandedComplete);
}发布于 2012-11-28 20:15:53
我同意OP的观点;在最初的帖子中有一个错误(正如原始回答者指出的),这足以让它看起来这里没有真正的问题;但我有一个复杂的JS/Ajax驱动页面,以及一些代码,它们试图通过JS函数中的BehaviorID获取一些ASP.NET Ajax CollapsiblePanelExtender对象,该JS函数/是/调用在PageLoad上。
这些对象通常是准备好的,但有时不是;如果尝试以轻微延迟(100ms)运行代码,它们就准备好了。但是,延迟一段固定的时间并不好;我可以使用什么事件来了解这些ASP.NET Ajax对象已经完成了自身的构建?
https://stackoverflow.com/questions/11536810
复制相似问题