Click here to Skip to main content
15,860,972 members
Articles / Web Development / HTML
Article

Server Side MessageBox

Rate me:
Please Sign up or sign in to vote.
4.89/5 (36 votes)
19 Sep 20052 min read 217.8K   3.2K   106   52
A web (modal) messagebox without popup.

Sample Image

Sample Image

Introduction

As web developers, we always need model windows. But the simplest model window that comes from JavaScript has a problem: "Popup Blockers". You can write window.showModalDialog(...) in script, but what next?

My component, a web message box is a customizable modal dialog for ASP.NET 2.0, but not a popup and not a new window. It appears at the top of all objects and hides the others, so the other controls can not be clicked.

Background

The idea is very simple. In m control, I have some panels (<div>) and their z-indexes. I open a transparent panel at the top of all elements. So I prevent them being clicked. Then, I need a few new panels for the messagebox and some scripting and styling to show them.

The control has three events:

  • Btn1Clicked
  • Btn2Clicked
  • Btn3Clicked

Two styles:

  • msg.MessageBoxStyle.Violet
  • msg.MessageBoxStyle.Blue

And four icons:

  • msg.MessageBoxIcons.Exclamation
  • msg.MessageBoxIcons.Asteriks
  • msg.MessageBoxIcons.Question
  • msg.MessageBoxIcons.None

You can edit the visual affects by editing the InitializeIcon and InitializeStyle functions in Mbox.ascx.cs.

Using the control

Only thing you should do is add the Mbox.ascx user control and the Resources folder to your project. And then drag & drop the user control to your web form.

Image 3

Image 4

Add the following code to your default.aspx or whatever your file is..

C#
protected void Page_Load(object sender, EventArgs e)
{   //bind the events to messagebox buttons...
    Mbox1.Btn1Clicked += new EventHandler(Mbox1_Btn1Clicked);
    Mbox1.Btn2Clicked += new EventHandler(Mbox1_Btn2Clicked);
}
void Mbox1_Btn2Clicked(object sender, EventArgs e)
{
    Response.Write("2nd button clicked");
}

void Mbox1_Btn1Clicked(object sender, EventArgs e)
{
    Response.Write("1st button clicked");
}
C#
//Show methods and their overloads...
protected void Button1_Click(object sender, EventArgs e)
{
    Mbox1.Show("hede", "hodo");
}
protected void Button2_Click(object sender, EventArgs e)
{
    Mbox1.Show("My test message", "Warning", "OK", "Cancel", null);
}
protected void Button3_Click(object sender, EventArgs e)
{
    Mbox1.Show("My test message", "Warning", "OK", "Cancel", null, 
                                 msg.MessageBoxIcons.Exclamation);
}
protected void Button4_Click(object sender, EventArgs e)
{
    Mbox1.Show("My test message", "Warning", "OK", "Cancel", "Retry", 
               msg.MessageBoxIcons.Exclamation,msg.MessageBoxStyle.Violet);
}

I will not tell you more about this message box. I told you the logic behind it. A little effort will be enough to understand the code.

Points of Interest

The next version of the product will be a window-like popup control, but of course not a popup. It will be available soon... For bug reports and suggestions, I will wait for your mails at ozuolmez@msn.com.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Software Developer
Netherlands Netherlands
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralRe: The Greatest..! Pin
John Sibly7-Apr-06 6:12
John Sibly7-Apr-06 6:12 
GeneralNot Working for me Pin
Rak_i25-Oct-05 0:26
Rak_i25-Oct-05 0:26 
GeneralRe: Not Working for me Pin
Kivanc Ozuolmez25-Oct-05 0:33
Kivanc Ozuolmez25-Oct-05 0:33 
GeneralNo Work Pin
Jan Waiz14-Oct-05 4:19
Jan Waiz14-Oct-05 4:19 
GeneralRe: No Work Pin
Jerry Hammond14-Oct-05 4:49
Jerry Hammond14-Oct-05 4:49 
QuestionWhat about a live demo or ASP.NET 1.1 version? Pin
Manuel Abadia28-Sep-05 12:41
Manuel Abadia28-Sep-05 12:41 
GeneralUser CSS Pin
Member 208302528-Sep-05 4:49
Member 208302528-Sep-05 4:49 
GeneralRe: User CSS Pin
Kivanc Ozuolmez28-Sep-05 5:16
Kivanc Ozuolmez28-Sep-05 5:16 
Yeas, you are right.
But you can edit the code, Mbox.ascx.cs file and the InitializeStyle method. Also you may add a new enum-item to MessageBoxStyle.

if you add good styles to messagebox, please mail them to me. I will update this article and ad your styles.



http://blogs.yazgelistir.com/kivanc/
GeneralDoes it cope with dropdowns lists in IE Pin
tony_bbc28-Sep-05 0:48
tony_bbc28-Sep-05 0:48 
GeneralRe: Does it cope with dropdowns lists in IE Pin
Kivanc Ozuolmez28-Sep-05 4:45
Kivanc Ozuolmez28-Sep-05 4:45 
QuestionRe: Does it cope with dropdowns lists in IE Pin
leo_fulong12-Sep-06 14:53
leo_fulong12-Sep-06 14:53 
GeneralGreat!!! Pin
Mesut KOSUCU19-Sep-05 21:23
Mesut KOSUCU19-Sep-05 21:23 
GeneralThanx a lot Pin
EyüpA19-Sep-05 20:31
EyüpA19-Sep-05 20:31 
QuestionServer-side? Pin
Carl Mercier19-Sep-05 6:45
Carl Mercier19-Sep-05 6:45 
AnswerRe: Server-side? Pin
Michael J. Collins27-Sep-05 4:11
professionalMichael J. Collins27-Sep-05 4:11 
AnswerRe: Server-side? Pin
Anonymous27-Sep-05 17:25
Anonymous27-Sep-05 17:25 
AnswerRe: Server-side? Pin
Jerry Hammond14-Oct-05 4:48
Jerry Hammond14-Oct-05 4:48 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.