شرکت داده پردازان راتین

طراحی و برنامه نویسی وب سایت، سی دی مالتی مدیا و تولید نرم افزارهای سفارشی

شرکت داده پردازان راتین

طراحی و برنامه نویسی وب سایت، سی دی مالتی مدیا و تولید نرم افزارهای سفارشی

Refresh کردن صفحه Parent توسط صفحه Child

 در این مقاله ما دو صفحه ایجاد خواهیم کرد به نام های Parent و Child .
صفحه Parent  دارای یک Panel می باشد که نام رنگ پس زمینه Panel را در رویداد Load خود از  Web.config می خواند . به طور پیش فرض نام رنگ ، "Red" می باشد . در صفحه  Child ، نام این رنگ را به "Blue" تغییر می کند و صفحه والد تازه سازی می شود و در نتیجه رنگ پس زمینه Panel  در صفحه والد به آبی تغییر می کند.

شروع از ابتدا :
یک پروژه جدید ASP.NET ایجاد کنید. دوصفحه به نام های Panel و Child  ایجاد کنید. در رویداد Load صفحه Parent ، کدهای زیر را بنویسید.
if (!IsPostBack)

{

System.Configuration.ConfigurationManager.AppSettings["PageColor"] = "Red";

}

Style obj_Style = new Style();

obj_Style.BackColor = System.Drawing.Color.FromName(System.Configuration.ConfigurationManager.AppSettings["PageColor"]);

Panel1.ApplyStyle(obj_Style);

همانطور که ملاحظه می کنید ابتدا کنترل می کنیم اگر صفحه برای اولین باز اجرا می شود ، نام رنگ مربوط به  پس زمینه Panel  را به مقدار "Red" تخصیص می دهد . سپس نام رنگ را از  Web.config خوانده و به یک شی از نوع  Style تخصیص می دهد و این شی را به  Panel  اعمال می کند. در نتیجه اگر برای اولین بار صفحه را اجرا کنید ، رنگ پس زمینه  Panel  قرمز می باشد.
اکنون زمان آن رسیده است که کدهای جاوا اسکریپت مربوط به باز کردن صفحه Child به صورت  popup ، را بنویسیم . این کدها را در صفحه Parent بنویسید.

<script language="javascript" type="text/javascript">

function OpenWindow(strChildPageUrl)

{

window.open (strChildPageUrl, 'NewPage','width=600px,height=600px,scrollbars=1');

}

</script>
شرکت داده پردازان راتین
www.ratingroup.com


این تابع جاوااسکریپت نام صفحه فرزند را می گیرد و آن را به صورت  popup ، باز می کند . در ضمن صفات مربوط به ارتفاع و عرض و اسکرول بار صفحه فرزند نیز مقدار دهی شده اند .اکنون یک هایپر لینک در صفحه  Parent  ایجاد می کنیم که تابع فوق را فراخوانی می کند و نام صفحه Child.aspx را به آن ارسال می کند
<a href="javascript:OpenWindow('Child.aspx')">Show Child</a>

با استفاده از دستور زیر می توانیم صفحه  Parent.aspx را از داخل صفحه  Child.aspx تازه سازی کنیم.
window.opener.document.forms(0).submit();

در ASP.NET 2 ما می توانیم کدهای سمت مشتری را  به Page.ClientScript  اضافه کنیم .  اکنون یک button به صفحه  Child.aspx اضافه کنید و کدهای زیر را د ررویداد کلیک آن بنویسید.
System.Configuration.ConfigurationManager.AppSettings["PageColor"] = "Blue";

string cRefreshParent = "<script language='javascript'>" + " window.opener.document.forms(0).submit();" + "</script>";

string cRefreshParentKey = "RefreshParentKey";

if (!this.Page.ClientScript.IsClientScriptBlockRegistered(cRefreshParentKey))

{

this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(),

cRefreshParentKey, cRefreshParent);

}
وظیفه این دکمه این است که نام  رنگ موجود در  Web.config را به "Blue" تغییر دهد. سپس کدهای مربوط به تازه سازی صفحه والد نوشته شده است.
خوب کار تمام شد . اکنون صفحه  Parent.aspx را اجرا کنید . همانطور که می بینید رنگ پس  زمینه Panel از  Web.config خوانده می شود ، به طور پیش فرض قرمز می باشد. روی لینک Show Child کلیک کنید تا صفحه فرزند باز شود . روی دکمه Change Color در صفحه فرزند کلیک کنید. اکنون اگر به صفحه Parent دقت کنید ، می بینید که رنگ پس زمینه Panel به آبی تغییر کرده است. فایل مربوط به این مقاله از لینک بالای صفحه قابل دانلود می باشد.

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد