2009-05-12 10 views
5

私は.ascxファイルのリストを持っています。これらの設定はコントローラ自体の計算上、それぞれ異なるタスクを実行します。だから私の.aspxページで私はAjax.ActionLink()をクリックすると、これは具体的な.ascxファイルをクリックしたことに基づいてレンダリングされます。その内に.ascxは、それらのうちの2つを発火させる1-3イベントはonclickイベントであり、1はonloadです。 onclickイベントは、.ascxがロードされたときに、onclick="$("#toggleMe3").slideToggle("slow");"onloadのようなコントロールイベントで直接ハードコードできます。$(document).ready(function(){});コールでこれをテストしていましたが、これは正常に動作します。 .aspxページですが、それを.aspxページに追加しようとするとすぐに読み込まれず、理想的ですが、どうしていいのかわかりません。実際には、スクリプトのタグ内の何も私が直接.ascxページに挿入すると、コントロールのイベントにハードコードされていれば機能します。 onloadおよびonprerenderは起動しません。

+0

に同じ問題を修正するようなスクリプトを追加するように見えました。 –

答えて

1

$(document).readyで指定された部分的なポストバックスクリプトが実行されなかったのと同じ問題がありました。私はここで解決MSDN - PageRequestManager Class

は以下のここでの問題

<script type="text/javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myReadyFunction); 
</script> 
1

私はXHR経由でロードされる私の部分に$(document).readyを使って成功しました。 JavaScriptの例外をスローするXHR経由で読み込んでいるビューはありますか?それとも不正な形式のHTMLが含まれていますか?

私は通常、私はあなたの質問を理解するのに苦労していたような...

<script type="text/javascript"> 
$(document).ready(function(){ callMyFunction(); }); 
</script> 
+0

残念ながら、これは私のためには機能しません、私はまだ幸運の底にスクリプトタグを追加しました。私はMicrosoftAjax.jsを使用してAjax呼び出しを制御し、jquery ajax関数を制御していません。 – Ayo

+0

これは少なくとも私にとっては、Windows XPのFF3.5とIE7で動作します。しかし、なぜ私はj​​Queryのドキュメントがこのケースを処理しないので、理解できません... –

+0

それは私のascxページ内でクロム – Roch

1

、私の$(文書)私はAjaxを介して負荷というのが私の部分の底に.ready方法を持っている...しかし、ここに行く。

AJAX呼び出しを使用して日付をロードする場合、ページが既にロードされているため、$(document).ready()イベントは発生しません。今すぐもっと多くのデータをロードしています。

コントロールが既にわかっている場合は、JavaScriptをプリロードしますが、クリックイベントハンドラを使用してバインドするのではなく、ライブハンドラを使用します。

ので

$("#myControl").click(....); 

これはあなたが探していたものでない場合

$("#myControl").live("click", ....); 

申し訳ありませんになります。

+0

この仕事は私のために働いたのですか?ページが動的にロードされない場合は – Ayo

+0

、はい。それ以外の場合は、liveをaspxからイベントハンドラをプリロードする必要があります。 そうでなければ、コンテンツがロードされたことを知り、ロードされたjavascriptを呼び出すためにクライアント側にいくつかのフックを追加する必要があります。 –

関連する問題