PDA

View Full Version : غیر فعال کردن دکمهback اینترنت اکسپلورردر delphi2005 asp.net



ravanfar
سه شنبه 15 دی 1383, 07:24 صبح
سلام
در یک صفحه در پروژه ام میخواهم کاربر نتواند با زدن دکمه Back به صفحه قبلی برگشت کند نمونه این کار دیده ام مثلاْ با زدن آن دکمه بجای رفتن به صفحه قبلی یک صفحه اخطار برای کاربر نمایش داده میشود
تشکر روانفر :oops:

Vahid_Nasiri
سه شنبه 15 دی 1383, 10:00 صبح
با تغییر زمان کش شدن صفحه می توان دکمه ی back را بی اثر کرد.

Shabani.Mojtaba
سه شنبه 15 دی 1383, 11:30 صبح
میشه بیشتر توضبح بدید؟
با asp.net 2003 هم باید بشه :گیج:

Vahid_Nasiri
سه شنبه 15 دی 1383, 12:14 عصر
ASP.NET ربطی به دلفی ، سی شارپ ، 2003 ، 2005 و غیره ندارد. تمامش تحت لوای دات نت فریم ورک اجرا می شود و هر کسی می تواند یک زبان را ویژه آن طراحی کند (اصولا بر این مبنا ساخته شده).


یک فصل کامل در مورد Cache در کتابخانه سایت موجود است.
+ خط زیر را به ابتدای صفحه (سورس aspx) اضافه کنید:

<%@ OutputCache Duration="1" VaryByParam="*" %>

و یا روش دوم:
یک متغیر سشن تعریف کن. بعد برای بار اول که صفحه load شد مقدار یک را به آن نسبت بده. اگر کاربر باز صفحه را درخواست کرد با چک کردن مقدار این متغیر می شود جلوی او را گرفت. به همین سادگی! (البته صفحه ی کش شده را کاری نمی شود کرد بجز مورد فوق)

ravanfar
سه شنبه 15 دی 1383, 13:44 عصر
سلام
من دستور اول شما رو اجرا کردم یعنی


<%@ OutputCache Duration="1" VaryByParam="*" %>

اول صفحه webform3.aspx گذاشتم ولی back همچنان فعال است من اطمینان دارم درست فرامین شما را اجرا نکردم کمی راهنمایی بفرمایید متشکرم :oops:
روانفر

Vahid_Nasiri
سه شنبه 15 دی 1383, 14:01 عصر
دکمه های اینترنت اکسپلورر تحت هیچ عنوان از کار نمی افتند. نه در اینجا و نه در هیچ اسکریپت دیگری.
منظور این بود که دیگر این صفحه کش نمی شود و چند لحظه بعد اگر کاربر به عقب برگشت تنها با فشردن دکمه ای یک صفحه ی خطا را خواهد دید.

Vahid_Nasiri
سه شنبه 15 دی 1383, 14:25 عصر
پیاده سازی موارد بالا :


private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
// do not cache page.
Response.CacheControl = "no-cache" ;
Response.AddHeader( "Pragma", "no-cache" );
Response.Expires = -1 ;

if(Session["xxx"]==null) // it is 1st time!
Session["xxx"]=1;
else //hehe! do not touch back button dear user!
Response.Redirect("go_to_error_page.aspx");// our error page.
}
}

ravanfar
چهارشنبه 16 دی 1383, 10:27 صبح
سلام
خیلی ممنون خیلی شرمنده سربلند باشید استاد محترم
:thnx: :thnx: :thnx: :thnx: :thnx:
روانفر

ravanfar
جمعه 18 دی 1383, 03:58 صبح
سلام
جسارت بنده را ببخشید بجای "xxx" در کدی که شما اراپه کردید چی بگذاریم من چون درست نفهمیدم error میگیرم
متشکرم روانفر

Vahid_Nasiri
جمعه 18 دی 1383, 11:09 صبح
هیج چیزی. به همین صورت کار میکنه و تست کردم. (به این صورت شما یک متغیر سشن تعریف کرده اید و نامش هر چیزی می تواند باشد.)

afsar
سه شنبه 06 بهمن 1383, 14:31 عصر
با جاوا اسکریپت هم می شه یا نه؟
منظورم اینه که می شه دکمه های Back و Forward را غیر فعال کرد یا نه؟

esi022
سه شنبه 06 بهمن 1383, 15:57 عصر
<script>
history.forward();
</script>
این به من جواب داد :موفق:

afsar
چهارشنبه 07 بهمن 1383, 14:37 عصر
روش خیلی باهالی بود :kaf:

:تشویق: :تشویق: :تشویق: :تشویق: :تشویق: