asp.net treenodeコントロールからjquery関数を呼び出す際に問題が発生しています。 aspxファイルのtreenodeコードは次のとおりです。 私が使っている方法はjavascriptリンクを "navigateUrl"属性に入れることです。以下はIE.netのASP.net treenodeからJqueryを呼び出す
コードです:
<asp:TreeNode Value="Level1"
NavigateUrl="javascript:$('#mainContentContainer').load('report.aspx?level=1');"
Text="Level 1"
Target="Content"
expanded="false">
これは、Chromeで完璧に動作します。 report.aspxの内容は、treenodeの「レベル1」をクリックすると、期待どおりにmainContentContainer divに読み込まれます。
ただし、Internet Explorer(v8と9)では、別のブラウザウィンドウを開き、JavaScriptリンクをURLのように読み込もうとします。何らかの理由でアドレスバーにリンクのこの部分のみが表示されます。「javascript:$( '」とコンテンツウィンドウにこのエラーが表示されます。「Internet Explorerはウェブページを表示できません」
この問題とすべての解決策を検索しました。 "OnClick"属性を使用してJavaScript呼び出しを行うか、または "要素"の "target"属性を "_self"に設定するかのいずれかが推奨されます。
これらのオプションはどちらも私にとっては役に立たず、このasp.netコントロールの有効な属性ではないため、「OnClick」属性を使用しています。
タイプ 'System.Web.UI.WebControls.TreeNode'に 'onclick'という名前のパブリックプロパティがありません はブラウザに表示されるエラーです(標準の.netエラーWebページとして返されます)
私はtarget = "_ self"オプションを試しましたが、唯一の変更は新しいブラウザウィンドウを開いてエラーで表示することでした。現在のブラウザは、アドレスバーに変更を加えることなく[オブジェクトオブジェクト]を表示します。
私が読んだもう一つの解決策は、javascript呼び出しの後に "retun false"を置くことでしたが、これは "関数の外にあるreturn文" JavaScriptエラーです。
asp.net treenodeコントロールからjquery.loadを呼び出すソリューションがある場合は、教えてください。