2011-07-19 39 views
-1

は、ページのポップアップウィンドウを閉じるコードです。また、ユーザーにメッセージボックスを表示したいのですが、ポップアップウィンドウが近くに表示されますが、画面上にちらつきが表示されますそれ。ポップアップウィンドウのちらつき

StringBuilder sb = new StringBuilder(); 
sb.Append("<script>"); 

sb.Append("window.close();"); 

sb.Append("</script"); 

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "test", sb.ToString(), false); 

MessageBox.Show("Please Sign In first...", "Login Message", MessageBoxButtons.OK, MessageBoxIcon.Question); 
return; 
+0

moreタグ – Snowbear

答えて

1

あなたのコードは意味をなさない。 RegisterClientScriptBlockを呼び出しているので、明らかにASP.NET WebFormsを使用しています。しかし、MessageBox.Show(WinFormsのバージョンのように見える)にも電話をかけようとしています。同じコードベースの両方のフレームワークを使用するには、自分の道を離れなければなりませんでした。その理由は、それらが一緒に働くことを意味するものではありません。

ASP.NETを使用している場合は、C#コードがWebサーバーマシン上でWindowsサービスとして実行されていることを意味します。つまり、ユーザーがあなたのWebサイトにアクセスすると、サーバーマシン(これは一部のサーバールームがロックされています)にダイアログボックスを表示しようとします。あなたのサイトの訪問者は自分のコンピュータ上に何かを見ません。実際には、IISは非インタラクティブサービスとして実行されるため、MessageBox.Showへの呼び出しは無視されます。

訪問者のマシンで実行される唯一のコードは、ASP.NETページによって生成されたHTMLとJavaScriptです。ユーザーにダイアログボックスを表示するには、JavaScriptを使用する必要があります。最も簡単な方法はwindow.alert()を呼び出すことです。

+1

ベストケースのシナリオでは無視されます。最悪の場合、それは決して確認できないメッセージボックスをポップアップさせ、効果的にシステムをハングします。デスクトップクライアントアプリケーションを除いて、すべてのコストで 'MessageBox.Show'を避けてください。 –