在OnClientNodeClicked事件处理程序中找不到RadTreeView

时间:2011-10-26 13:56:21

标签: javascript jquery telerik domready radtreeview

我正在使用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
}

我的工作是在telerik的DOM上手动运行onPageSelected。但是,pagesTree变量在此时为空。怎么了?这个问题只发生在IE8中(甚至不是IE9,我们也不支持IE7及以下版本)

1 个答案:

答案 0 :(得分:1)

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

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

当页面呈现时&lt;%= pagesTree.ClientID%&gt;将呈现为具有您控件的正确ClientID的字符串。