You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.9 KiB

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using System.Collections.Generic;
namespace BWPMWebForm.Helper
{
public class MessageBox
{
// Lets keep the message coming from all the pages here
static Dictionary<Page, Queue> pageTable = null;
static MessageBox()
{
// Create the store
pageTable = new Dictionary<Page, Queue>();
}
public static void Show(string str)
{
// Lets find out what page is sending the request
Page page = HttpContext.Current.Handler as Page;
// If a valid page is found
if (page != null)
{
// Check if this page is requesing message show for the first time
if (pageTable.ContainsKey(page) == false)
{
// Lets create a message queue dedicated for this page.
pageTable.Add(page, new Queue());
}
// Let us add messages of this to the queue now
pageTable[page].Enqueue(str);
// Now let put a hook on the page unload where we will show our message
page.Unload += new EventHandler(page_Unload);
}
}
static void page_Unload(object sender, EventArgs e)
{
// Lets find out which page is getting unloaded
Page page = sender as Page;
// If a valid page is founf
if (page != null)
{
// Extract the messages for this page and push them to client side
HttpContext.Current.Response.Write("<script>alert('" + pageTable[page].Dequeue() + "');</script>");
}
}
}
}