0

我正在使用 Telerik RadTreeView,并为其OnClientNodeClicked属性提供了一个 JavaScript 函数:

<telerik:RadTreeView 
    ID="pagesTree" 
    runat="server" 
    OnClientNodeClicked='onPageSelected' 
    ClientIDMode='static'>
</telerik:RadTreeView>

$telerik.$(document).ready(function () {
    onPageSelected(); // To run the onPageSelected function on DOM ready
}

function onPageSelected(e){
   var pagesTree = $find('pagesTree');
   // pagesTree is null here in IE8 for the manual execution on DOM ready
}

我所做的是手动运行onPageSelectedTelerik 的 DOM 准备就绪。但是,pagesTree当时变量为空。怎么了?这个问题只发生在IE8(甚至IE9,我们不支持IE7及以下)

4

1 回答 1

1

这很可能是因为您只是在使用$find('pagesTree'). 您必须记住,您为 ASP.NET 服务器端控件(Telerik 或非 Telerik)设置的 ID 将生成 ClientID。您可以通过执行以下操作来获取正确的客户端对象:

var pagesTree = $find('<%= pagesTree.ClientID %>');

当页面被渲染时,<%= pagesTree.ClientID %> 将被渲染为一个带有你控件的正确 ClientID 的字符串。

于 2011-10-28T20:57:35.040 回答