2011-07-14 7 views
0

ここで私はユーザーコントロールコードからやっています。ユーザーコントロールからasp.net Webフォームページの末尾にスクリプトテキストを追加します

ScriptManager.RegisterStartupScript(this.Page, typeof(Page), 
    "JQuerySearchReminder", 
    string.Format("(function() {{ $(function(){{ $('#{0}').val('{1}'); }}); }})();", ddlDestinationTrf.ClientID, srchrmdr["_did"]), 
    true); 

スクリプトコードは問題なく動作します。ユーザーコントロールでは、AjaxControlToolkitのCascadingDropDownコントロールも使用しています。

だから問題はそれです。

CascadingDropDownコントロールのスクリプトコードの前に、このスクリプトをページに追加するために使用しているこのC#コードが登録されています。これはこの状況では機能しません.CascadingDropDownコントロールがジョブを完了していない場合、dorpdownlistが空であるためです。

だから、私はこの不自由な状況から逃げましょう。

答えて

0

ScriptManager.LoadScriptsBeforeUIをfalseに設定してみましたか? See here for details

また、ドキュメントのロード後にjqueryのdocument.ready関数を使用してJavaScriptコードを実行できませんでしたか?

+0

いいえ、動作しません。私の目的は、ページの始めにwholse ajaxコードを取得することではなく、この小さなスクリプトコードを最後に取得することです。 – tugberk

+0

のdocument.ready部分については、私はこのコードがそうすると思った。 '$(function(){});'? – tugberk

+0

@tugberk: 'LoadScriptsBeforeUI =" false "'を設定すると、 'RegisterStarupScript'で登録されたスクリプトは、結果のHTMLページの最後に(つまり、' '要素の直前に)レンダリングされます。 – M4N

関連する問題