2016-05-14 32 views
0

イムScriptManager.RegisterStartupScript(...)に問題はありますか。

ScriptManager.RegisterStartupScript(this.Parent, this.GetType(), "Pop", "openMsgModal5();", true); 

、ブートストラップモーダルは、次のコードを使用して、ポップアップ表示するために取得しようとしているが、それはクロムなしポップアップにフォーカスを取得したとして、それだけで点滅し、いくつかの時間を動作し、他の回。 本当に時間を無駄にし、イライラする。このスクリプトにはJavascriptの問題やAJAXの問題がありますか、JQueryのポップアップを実行することができないため、JQueryといくつかのBootstrapコードの間に互換性がありません。それともASP.net 4.0ですか?

私はASP:UpdatepanelをUpdateMode = "Always"に設定しました。

イムローディングのJavaScriptを次のように

<script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> 

<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js" type="text/javascript"></script> 

<script src="js/bootstrap.min.js" type="text/javascript"></script> 

を私もあまりない髪が引き出すために、左のように誰かが似て見ている場合は任意のアイデアをいただければ幸い

<asp:ScriptManager ID="ToolkitScriptManager1" runat="server"> 
</asp:ScriptManager> 

私のページ上のScriptManagerを持っていますこれまでの約15のフォーラム投稿を読んで試してみました。

答えて

0

asp.netを知りませんが、問題はローディングオーダーの問題のようです。 jqueryの$(document).ready() funtionality(src code here, note the click event on the bottom)を使用して、「show modal」ボタンを宣言し、bootstrap addイベントリスナー(後でinitと呼ぶことにします)を使用して、モーダルボタンとモーダルダイアログをhtmlでハードコーディングすると、 ScriptManagerを使ってajax呼び出しで追加した場合(それが何であるか誤解していない場合)モーダルinitまたはajax呼び出しが最初に終了するかどうかはではありません。まずAjaxコールが終了し、すべて正常です。 (新しく到着したHTMLフラグメントは、イベントリスナーが適切に動作するようにイベントリスナーを持っていません。
解決方法は、ブートストラップがモーダルに入る前にすべてのモーダルHTMLが到着するようにしてください。LoadScriptsBeforeUIつまり、手動でスクリプトを挿入する前に、ScriptManagerにコールバックやhtmlフラグメントをロードした後に実行できるものがある場合は、コールバックにこれを追加してください:

0

部分的な更新では、スクリプトブロックを登録するコントロールとしてUpdatePanelを設定しました。他のスクリプトコードとの競合を避けるために、コードを非同期的にsetTimeoutと呼びます。

あなたの場合は、次のようになります。

ScriptManager.RegisterStartupScript(updatePnl, updatePnl.GetType(), "Pop", "setTimeout(function() { openMsgModal5(); }, 200);", true); 
関連する問題