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
}

私がやっていることは、onPageSelectedテレリックの DOM の準備が整った状態で手動で実行することです。ただし、pagesTree変数はその時点で null です。どうしたの?この問題は 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 に答える