نمایش MessageBox در ASP.NET

یکی از آیتم هایی که برنامه نویسان زیاد به آن نیاز دارند داشتن کلاسی برای نمایش پیغام  در بخش های مختلف پروژه هایشان می باشد .

روش های مختلفی برای نمایش یک MessageBox در ASP.NET Web Foems وجود دارد ولی بیشتر برنامه نویسان قطعه کدی را که مربوط به این کار می باشد در بیشتر جاهای پروژه هایشان کپی می کننند و این کار تا حد زیادی باعث بالارفتن میزان کدهای پروژه می شود . در این مقاله قصد داریم کلاسی را به اسم WbMessageBox که هدف آن نمایش پیغام در ASP.NET Web Forms می باشد معرفی کنیم .

کلاس WebMessageBox دارای یک متد استاتیک Show می باشد که یک آرگومان از ورودی به منظور نمایش به کاربر دریافت میکند .

    public class WebMessageBox
    {
    
    protected static Hashtable handlerPages = new Hashtable();
    private WebMessageBox()
            {
            }
 
            public static void Show(string Message)
            {
                  if (!(handlerPages.Contains(HttpContext.Current.Handler)))
                  {
                        Page currentPage = (Page)HttpContext.Current.Handler;
                        if (!((currentPage == null)))
                        {
                              Queue messageQueue = new Queue();
                              messageQueue.Enqueue(Message);
                              handlerPages.Add(HttpContext.Current.Handler, messageQueue);
                              currentPage.Unload += new EventHandler(CurrentPageUnload);
                        }
                  }
                  else
                  {
                        Queue queue = ((Queue)(handlerPages[HttpContext.Current.Handler]));
                        queue.Enqueue(Message);
                  }
            }
            private static void CurrentPageUnload(object sender, EventArgs e)
            {
                  Queue queue = ((Queue)(handlerPages[HttpContext.Current.Handler]));
                  if (queue != null)
                  {
                        StringBuilder builder = new StringBuilder();
                        int iMsgCount = queue.Count;
                        builder.Append("<script language='javascript'>");
                        string sMsg;
                        while ((iMsgCount > 0))
                        {
                              iMsgCount = iMsgCount - 1;
                              sMsg = System.Convert.ToString(queue.Dequeue());
                              sMsg = sMsg.Replace("\"", "'");
                              builder.Append("alert( \"" + sMsg + "\" );");
                        }
                        builder.Append("</script>");
                        handlerPages.Remove(HttpContext.Current.Handler);
                        HttpContext.Current.Response.Write(builder.ToString());
                  }
            }
}

چگونه از این کلاس استفاده کنیم :

ابتدا فایل کلاس را از اینجا دانلود کرده  و به پروژه خود اضافه کنید .

برای نمایش پیغام فقط کافیست متد Show را به صورت زیر همراه با یک رشته جهت نمایش فرخوانی کرد .

WebMessageBox.Show("Your Message Here");

 


توسط : عثمان رحیمی  2 ماه قبل ، یکشنبه 6 مهر 1393 ساعت 10:25  1  2387

نظر شما برای ما مهم است و به ما در بهبود سایت کمک میکند.


ارسال نظر
  • نام (اختیاری ) :
  • پست الکترونیک :
  • توضیحات :

مطالب مرتبط

نظرات خوانندگان

کاربر مهمان (فاطمه)  در تاریخ : 3 ماه قبل ، سه شنبه 7 اردیبهشت 1395 ساعت 00:00

سلام ممنونم از کدتون فقط من میخوام بعده اینکه کاربر دکمه ok که تو پیغام شما هست رو زد بره به همون صفحه ی قبل. کد اینکه چه جوری بره صفحه قبل رو میدونم ولی اینکه چه جوری تو کد شما جا بدمو نمیدونم ممنون میشم کمکم کنین