ページの表示を維持しながらダイアログをポップアップ

8520 ワード

【IT 168技術資源】
 
ASP.NETでは,バックグラウンドコードでダイアログをポップアップするが,一般的な解決策はResponseである.Writeはスクリプトコードを書いてダイアログボックスをポップアップしますが、問題はダイアログボックスがポップアップされた後、ページが空白になっていることです.ここで説明する方法は、ダイアログをポップアップしながらページの表示を維持することです.
 
  
【原理】
 
ページに非表示コントロールを配置し、ページの最後にスクリプトコードを配置します.スクリプトコードは非表示コントロールのvalueが空であるかどうかを検出し、空でない場合はダイアログボックスに情報を表示します.そうしないと、何もしません.
 
バックグラウンドコードは、必要に応じて非表示コントロールのvalueを変更し、ページがユーザーに渡されると、最後のスクリプトコードが実行され、ダイアログボックスがポップアップします.
 
  
【注意事項】
 
(1)隠しコントロールはHTMLコントロールでなければなりません.そうしないとJavaScriptは見つかりません.
(2)バックグラウンドコード非表示コントロールの値を変更するには、非表示コントロールにrunat="server"タグを付ける必要があります.
(3)ダイアログボックスをポップアップした後、隠しコントロールのvalueを空にしてください.そうしないと、リフレッシュ時にまた弾けます.
(4)スクリプトコードは必ず非表示コントロールの後ろに置かなければならない.そうしないと、同じように見つからない.
 
  
【実現】
 
ページコード(例ではBodyセグメントコードのみ)
 



  
    
< body MS_POSITIONING = " GridLayout " > < form id = " Form1 " method = " post " runat = " server " > < asp:TextBox id = " manuInput " runat = " server " ></ asp:TextBox > < asp:Button id = " Button1 " runat = " server " Text = " " ></ asp:Button > < INPUT id = " passTxt " type = " hidden " runat = " server " ><! -> </ form > < script language = javascript > if ( document.all( " passTxt " ).value != "" ) { alert( document.all("passTxt").value ); document.all("passTxt").value=""; // } </ script > </ body > ( Button1 ) private void Button1_Click( object sender, System.EventArgs e) { passTxt.Value = manuInput.Text; }

実はこの方法は簡単ですが、効果的で、関数showDialog(string str)を書いて、バックグラウンドコードの必要な場所で呼び出してダイアログボックスをポップアップすることができます.
 
また、alertをshowModelDialog()に変更して、より豊富な機能、よりきれいなウィンドウをポップアップすることもできます.
 
最後に、この方法の考え方は、スクリプトとバックグラウンドコードの間で情報を伝達するために使用することができ、Webアプリケーションではこのようにして、効果は悪くありません.