قطعا در بسیاری از Applicationهای شما مواردی پیش آمده است که شما نیاز داشتید صفحه*ای خاص را در یک پنجره Popup باز کنید. این کار به سادگی با استفاده از یک خط کدنویسی ساده جاوا اسکریپت امکان پذیر است. حتی در صورتی که فایلی که کد جاوا اسکریپت شما در آن قرار می گیرد یک فایل Server Side باشد نیز به علت اینکه در تمامی زبانهای Server Side پیش از ASP.NET کلیه کدها به صورت Block Script و لابلای کدهای HTML قرار می گرفت منعی در استفاده از بلاکهای جاوا اسکریپت نیز وجود نداشت. با ظهور ASP.NET و قابلیت قدرتمند آن یعنی Code Behind برنامه نویسان از کلنجار رفتن با کدهای تو در توی طولانی رها شده و کلیه کدهای Server Side خود را در Code Behind می نویسند و حاصل کار آنها یک فایل aspx. است که در آن اثری از کدنویسی غیر از تگهای HTML (و تگهای توسعه یافته ASP.NET) دیده نمی*شود. حال اگر شما بخواهید یک Popup باز کنید چه می*کنید؟ آیا تابع جاوا اسکریپت بازکننده Popup را لابلای کدهای HTML صفحه خود می*نویسید؟ این روش به نظر صحیح نمی آید. چرا که ما خود را از قابلیت خوانانویسی کدهای HTML محروم کرده و باز قسمتی از برنامه نویسی خود را به درون فایل اصلی خود انتقال داده*ایم. چه می توان کرد؟ آیا راهی برای اینکه ما با استفاده از کدنویسی در Code Behind یک Popup باز کنیم هست؟ پاسخ مثبت است. در ادامه به این موضوع می پردازیم: در این روش در واقع ما کدهای جاوا اسکریپت خود را به صورت یک attribute به کنترل مورد نظر خود Add می کنیم. اما برای اینکه برای هر کنترل کدنویسی را تکرار نکنیم این قسمت را درون یک ساب روتین قرار می دهیم:
کد PHP:
using System.Web.UI.WebControls;
public 
void OpenPopUp(WebControl openerstring PagePath)
{
   
string clientScript;
   
clientScript window.open('" + PagePath  + "" );
   opener.Attributes.Add("OnClick", clientScript);    

طرز کار بسیار ساده است مقادیر ورودی یک کنترل و صفحه*ای است که باید باز شود. کد جاوا اسکریپت در یک متغیر رشته*ای به نام clinetString قرار داده می*شود و با استفاده از متد Add به کنترل اضافه می*شود. متد Add دو مقدار دریافت می*کند: ابتدا نام property و یا event و سپس مقدار آن که پس از Generate شدن صفحه به تگ HTML تولید شده اضافه می*شود.
حال شما می*توانید به راحتی به صورت زیر از این روتین استفاده کنید:
OpenPopup(Button1,google.com);
که در آن Butoon1 یک کنترل از نوع asp:button است. طرز کار بدین صورت است که پنجره بلافاصله پس از فراخوانی روتین باز نمی*شود بلکه کنترل شما را برای رویداد مورد نظر تنظیم می*کند و در هنگام وقوع رویداد (مثلا کلیک کردن روی دکمه) روتین اجرا می*شود.
با کمی کدنویسی اضافه می*توان ظاهر پنجره باز شده را نیز کنترل کرد. برای مثال شما می توانید طول و عرض پنجره، عنوان آن، اسکرول بار و... را تنظیم کنید:
کد PHP:
public shared void OpenPopUp(WebControl openerstring PagePath,
string windowNameint widthint height) {
   
string windowAttribs;
   
string clientScript ;

   
windowAttribs "width=" width "px," "height=" height "px," 
      "left='+((screen.width -" 
width ") / 2)+'," +
      
"top='+ (screen.height - " height ") / 2+'";

   
clientScript "window.open('" PagePath "','" windowName "','" +
      
windowAttribs "'); return false;";

   
opener.Attributes.Add("OnClick"clientScript);    

مزیت استفاده از این روش این است که به علت اینکه شما این تابع را یک بار و آن هم در کلاس و یا Code Behind قرار می*دهید می*توانید به راحتی خطاهای برنامه نویسی خود را قبل از اینکه اجرای کد خود را آغاز نمایید، پیدا کنید.