我正在使用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及以下版本)
答案 0 :(得分:1)
这很可能是因为您刚刚使用$find('pagesTree')
。您必须记住,为ASP.NET服务器端控件(Telerik或非Telerik)设置的ID将生成ClientID。您可以通过执行以下操作来获取正确的客户端对象:
var pagesTree = $find('<%= pagesTree.ClientID %>');
当页面呈现时&lt;%= pagesTree.ClientID%&gt;将呈现为具有您控件的正确ClientID的字符串。