0

我需要为CollapsiblePanelExtender页面的 Javascript 页面加载添加一个 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

4

2 回答 2

1

您没有将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-07-18T08:57:12.280 回答
0

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

这些对象通常已准备好,但有时还没有;如果尝试稍微延迟(100 毫秒)运行代码,它们就准备好了。但是耽误一段固定时间也不是很好;我可以使用什么事件来知道这些 ASP.NET Ajax 对象已经完成了自己的构建?

于 2012-11-28T12:15:53.193 回答