PDA

View Full Version : از كارانداختين f5 بعد از ذخيره اطلاعات



karimi84
شنبه 19 بهمن 1392, 10:28 صبح
با سلام
بعد از اينكه كار اطلاعات را ذخيره كرد اگر دكمه f5 را فشار دهد دباره اطلاعات ذخيره مي شود چطور مي توان جلوي اين كار رو گرفت
با تشكر

ahmad156
شنبه 19 بهمن 1392, 10:47 صبح
اصولی ترین کار اینه بعد از insert اطلاعات ، یا کاربر رو به صفحه دیگه منتقل کنین یا اینکه اطلاعات ورودی کاربر رو پاک کنین و در هر insert حتما چک کنین که اطلاعات وارد شده خالی نباشه

Sharar3D
شنبه 19 بهمن 1392, 11:23 صبح
با سلام
بعد از اينكه كار اطلاعات را ذخيره كرد اگر دكمه f5 را فشار دهد دباره اطلاعات ذخيره مي شود چطور مي توان جلوي اين كار رو گرفت
با تشكر
این جور به نظر میاد که شما عملیات ذخیره کردن رو توی رخداد لود شدن صفحه ( Page_Load ) دارید انجام میدید.
ترجیحا این کار رو منتقل کنید به یک متود جداگونه و این متد رو توی فرایند کلیک کردن یک دکمه فراخونی کنید. این جوری فقط با زدن اون دکمه عملیات مورد نظر رو اجرا می کنه.
همین طور نکاتی که ahmad عزیز هم گفتن عملی کنید.

karimi84
شنبه 19 بهمن 1392, 11:29 صبح
خوب تو Page_Load كه نيست كاربر اطلاعات را وارد ميكند بعد از زدن دكمه ذخيره اطلاعات خيره مي شود ولي اگر همان زمان كاربر دكمه f5 را بزند دوباره اطلاعات ذخيره مي شود
چك كردن خالي نبود هم فايده اي ندارد مثل اينكه سيستم اطلاعات رو از بافر ميگره
چون بعد از ذخيره اطلاعات كليه ايتمها خالي ميشن

AmirRezanezhad
شنبه 19 بهمن 1392, 11:35 صبح
سلام دوست عزیز از فطعه کد زیر بعد از کدهای ثبت استفاده کن .
Response.Redirect(Request.Url.AbsoluteUri);

Sharar3D
شنبه 19 بهمن 1392, 12:05 عصر
خوب تو Page_Load كه نيست كاربر اطلاعات را وارد ميكند بعد از زدن دكمه ذخيره اطلاعات خيره مي شود ولي اگر همان زمان كاربر دكمه f5 را بزند دوباره اطلاعات ذخيره مي شود
چك كردن خالي نبود هم فايده اي ندارد مثل اينكه سيستم اطلاعات رو از بافر ميگره
چون بعد از ذخيره اطلاعات كليه ايتمها خالي ميشن

وقتی کاربر دکمه رو فشار میده، اطلاعات به سمت سرور پست میشه، اما اگه قبل از دریافت پاسخ از سرور ( به دلیل کندی اینترنت یا کند بودن پاسخ گویی سرور ) مابین ارسال و دریافت پاسخ، کاربر دکمه رفرش رو بزنه، مرورگر آخرین عملیات انجام شده رو دوباره تکرار می کنه، که در اینجا همون ارسال اطلاعات به سرور هست، سرور هم فکر میکنه اطلاعات جدید دستش رسیده و عملیات ذخیره سازی رو دوباره انجام میده.
شما باید کدتون رو جوری بنویسید که قبل از ذخیره اطلاعات مطمئن بشه که اون اطلاعات دوباره وارد نشده.
ساده ترین راه اینه که یک bool تعریف کنید و ازش استفاده کنید که ایا قبلا اطلاعات اون صفحه ذخیره شده یا نه.

kamranetemadi
شنبه 19 بهمن 1392, 12:19 عصر
فکر می کنم با شرط IsPostback مشکلتون حل بشه!!!!!