PDA

View Full Version : جلوگیری از اجرای کدها در هنگام رفرش صفحه



maktab
پنج شنبه 15 فروردین 1392, 16:33 عصر
سلام. من در لیست ویو خودم یه باتون دارم که کد ای را اجرا میکنه. حالا وقتی بر روی باتون کلیک میکنم کد اجرا میشه ولی وقتی بعد از کلیک کردن، صفحه را رفرش کنم دوباره اون کدها هم اجرا میشن. که بصورت معمولی طبیعیه و مرورگر هم اخطار میزنه که ممکنه عملیاتی صورت بگیره! ولی خب من میخوام جلوی این کار را بگیرم. سرچ کردم انگار بهتره بعد از اینکه کدها اجرا شدن صفحه را Redirect کنم تا اطلاعات post صفحه از بین بره.
ولی یه اشکال؛ فرض کنیم در صفحه 5 لیست ویو باشیم بعد وقتی Redirect کنیم خب بر میگرده به صفحه اول! چکار کنم تا این مشکل برطرف بشه؟

iranolom
جمعه 16 فروردین 1392, 20:27 عصر
السلام ...برای اجرا نشدن دوباره کد های قسمت لود که بعد از پست بک رخ میده یه شرط می تونید برارید



if (this.ispostBack.Tostring()=="False")
{

}


هم اکنون کد های درون بلاک شرط فقط برای اولین لود صفحه اجرا میشن در صورتی که صفحه پست بک بشه مقدار فیلد پست بک صفحه ترو میشه و شرط هم محقق نمی شه بنابراین کد هات اجرا نمی شن در حالت پست بک.

fakhravari
جمعه 16 فروردین 1392, 20:40 عصر
if (!this.ispostBack)

maktab
جمعه 16 فروردین 1392, 22:58 عصر
دوستان انگار متوجه سوال من نشدند!! این کدها در یک باتون قرار داده شده که چند بار استفاده میشه (چندبار کلیک خورده میشه) خب حالا با این شرط فقط یکبار یا بهتر بگم اصلا اجرا نمیشه :اشتباه: خب باید صفحه پست بک داشته باشه تا کدها اجرا بشند.
من فقط میخوام وقتی صفحه رفرش شد (با استفاده از کلیک بر روی رفرش صفحه) این کدها اجرا نشند.

saeed31641
جمعه 16 فروردین 1392, 23:11 عصر
باور کن دوست عزیز سوال واضح نیست اگه یه سمپل بزاری بهتر.دوست شما پست سیستم خود نشستی می دونی چی نوشتی و چیکار کردی ما فقط چند خط بالا رو میخونیم

maktab
شنبه 17 فروردین 1392, 00:39 صبح
فکر کنم واضح بود :لبخندساده: ولی چشم. یه مثال ساده میزنم: شما یک باتون داخل لیست ویو داشته باشید که با زدن کلیک بر روی اون اطلاعاتی به بانک ارسال میکنید. این کار ممکنه چند بار صورت بگیره، پس نمیتونیم براش شرط بذاریم که اگر postBack نشده اجرا بشو! در اصل هر وقت که postback میشه اجرا میشه. (هر وقت کلید زده میشه). فقط یک مشکل رایج هست؛ اینکه اگر شما صفحه را رفرش کنید (با زدن دکمه رفرش بالای مرورگر) دوباره کدهای داخل باتون اجرا میشند! یعنی رویداد در حافظه مونده و اجرا میشه! البته مرورگر قبلش اخطار میزنه که ممکنه چنین اتفاقی بیفته. (مطمئنا همه با این اخطار مواجه شدن)
حالا برای اینکه جلوی اجرای کدها را بگیرم باید چکار کنم؟

سرچ زدم اکثر جاها گفته شده که دوباره از اول صفحه را فراخوانی کنم، ولی مشکلی پیش میاد که تو پست اول گفتم