01.
using
System;
02.
using
System.Data;
03.
using
System.Configuration;
04.
using
System.Web;
05.
using
System.Web.Security;
06.
using
System.Web.UI;
07.
using
System.Web.UI.WebControls;
08.
using
System.Web.UI.WebControls.WebParts;
09.
using
System.Web.UI.HtmlControls;
10.
11.
using
System.Collections;
12.
using
System.Text;
13.
14.
/// <summary>
15.
/// Summary description for MessageBox
16.
/// </summary>
17.
public
class
MessageBox
18.
{
19.
private
static
Hashtable m_executingPages =
new
Hashtable();
20.
21.
public
MessageBox()
22.
{
23.
24.
25.
26.
}
27.
28.
public
static
void
Show(
string
sMessage)
29.
{
30.
31.
if
(!m_executingPages.Contains(HttpContext.Current.Handler))
32.
{
33.
34.
Page executingPage = HttpContext.Current.Handler
as
Page;
35.
36.
if
(executingPage !=
null
)
37.
{
38.
39.
Queue messageQueue =
new
Queue();
40.
41.
messageQueue.Enqueue(sMessage);
42.
43.
44.
m_executingPages.Add(HttpContext.Current.Handler, messageQueue);
45.
46.
47.
executingPage.Unload +=
new
EventHandler(ExecutingPage_Unload);
48.
}
49.
}
50.
else
51.
{
52.
53.
54.
55.
56.
Queue queue = (Queue) m_executingPages[HttpContext.Current.Handler];
57.
58.
queue.Enqueue(sMessage);
59.
}
60.
}
61.
62.
63.
64.
private
static
void
ExecutingPage_Unload(
object
sender, EventArgs e)
65.
{
66.
67.
Queue queue = (Queue) m_executingPages[HttpContext.Current.Handler];
68.
69.
if
(queue !=
null
)
70.
{
71.
StringBuilder sb =
new
StringBuilder();
72.
73.
int
iMsgCount = queue.Count;
74.
75.
sb.Append(
"<script language='javascript'>"
);
76.
77.
string
sMsg;
78.
79.
while
(iMsgCount-- > 0)
80.
{
81.
sMsg = (
string
) queue.Dequeue();
82.
sMsg = sMsg.Replace(
"\n"
,
"\\n"
);
83.
sMsg = sMsg.Replace(
"\""
,
"'"
);
84.
sb.Append( @
"alert( "
""
+ sMsg + @
""
" );"
);
85.
}
86.
87.
sb.Append(@
"</script>"
);
88.
89.
m_executingPages.Remove(HttpContext.Current.Handler);
90.
91.
HttpContext.Current.Response.Write(sb.ToString());
92.
}
93.
}
94.
}