نمایش نتایج 1 تا 6 از 6

نام تاپیک: refresh صفحه و دردسرهای آن

  1. #1

    refresh صفحه و دردسرهای آن

    من یک فرک دارم که از طریق اون کاربران می تونند سر عنوان های مختلفی رو بسازند و در زمان هر بار زدن کلید ذخیره شود هم اطلاعات اضافه می شود و هم DataGrid ی که در آن صفحه است Bind مشود . حالا مشکل اینجاست که در زمان درج هر عنوان پس از درج اگر 100 بار هم کلید F5 یا همان refresh صفحه کنند 100 رکورد جدید هم اضافه می شود یعنی Button زده شده با هر refresh دوباره صدا زده می شود !! چه کنم که جلوی این کارو بگیرم !!

  2. #2
    کاربر دائمی آواتار MehranZand
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    تهران
    پست
    330
    راه های زیادی وجود داره برای اینکار یکی از ساده ترین راه ها redirect کردن پس از
    عمل insert به همان صفحه است به اینصورت:

    Response.Redirect(Request.Url.ToString(),
    false)

  3. #3
    ممنون ولی اگر فکر می کنید راه منطقی تری هم وجود داره لطفا بفرمایید

  4. #4
    کاربر دائمی آواتار MehranZand
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    تهران
    پست
    330
    راه دیگه ای که داره استفاده از session و viewstate برای کنترل کردن reinserting است.
    در این روش شما باید در رویداد Page_Load صفحه از یک شرط استفاده کنید که اگر برای
    اولین بار صفحه لود میشود مقداری را که بهترین مقدار زمان حال DateTime.Now است
    درون متغییرSession("update") قرار بدهید.


    IfNot Page.IsPostBack
    Session("update") = Server.URLEncode(System.DateTime.Now.ToString())
    EndIf


    و در رویداد Page_PreRender مقدار اختصاص یافته session("update") را به یک متغییر viewstate("update اختصاص بدهید. حالا اگر پست بکی در صفحه شما رخ نداده باشد یعنی
    برای اولین بار بخواهید عمل insert را انجام بدهید مقدار session و viewstate یکی خواهد بود
    پس کافیه قبل از عمل inserting این دو مقدار را با هم چک کنید اگر با هم برابر بودند inserting
    انجام بشود و اگر نه مثلا پیغامی رو به کار نشان بدهید . اما زمانی که عمل insert را انجام دادید حتما باید session("update") را دوباره به روز کرده و مقدار زمان حال را مانند Page_Load درونش قرار بدهید .
    بار دوم اگر بخواهد عمل reinserting صورت بگیره به علت اینکه session و viewstate مقدار یکی ندارند پیغام خطا نمایش داده میشود.

    کد کامل مثال:

    Sub
    Page_Load (sender AsObject, e As EventArgs)
    IfNot Page.IsPostBack
    Session(
    "update") = Server.URLEncode(System.DateTime.Now.ToString())
    EndIf

    EndSub
    Sub
    Page_PreRender (sender AsObject, e As EventArgs)
    ViewState(
    "update") = Session("update")
    EndSub
    Sub
    Button1_Click(sender AsObject, e As EventArgs)
    If Session("update").ToString() = ViewState("update").ToString() Then
    Add(firstName.Text, lastName.Text)
    Message.Text =
    "Success"
    Session("update") = Server.UrlEncode(System.DateTime.Now.ToString())
    Else
    Message.Text = "Failure - Session"
    EndIf
    firstName.Text = ""
    lastName.Text = ""
    EndSub


    پ.ن. Add ساب روتینی است که مقادیر firstname و lastname را در بانک ما درج میکند.

  5. #5
    بسیار بسیار متشکرم

  6. #6
    کاربر تازه وارد آواتار Mcraft
    تاریخ عضویت
    فروردین 1391
    پست
    46

    نقل قول: refresh صفحه و دردسرهای آن

    راه ساده تر ()focus است!!!
    کافیه بعد از insert ،focus به یک تکست منتقل شه...

تاپیک های مشابه

  1. refresh کردن یک صفحه از داخل صفحه دیگر
    نوشته شده توسط mahdi939 در بخش طراحی وب (Web Design)
    پاسخ: 4
    آخرین پست: شنبه 26 خرداد 1386, 11:21 صبح
  2. مشکل Refresh تصویر...
    نوشته شده توسط aloneman2005 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 4
    آخرین پست: پنج شنبه 27 اردیبهشت 1386, 11:05 صبح
  3. refresh کردن یک رکورد
    نوشته شده توسط MNosouhi در بخش برنامه نویسی در Delphi
    پاسخ: 5
    آخرین پست: شنبه 16 دی 1385, 10:00 صبح
  4. refresh کردن صفحه نمایش
    نوشته شده توسط ARA در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 0
    آخرین پست: دوشنبه 17 مهر 1385, 10:01 صبح
  5. مشکل refresh صفحه و کش شدن اطلاعات در سرویس دهنده اینترنت
    نوشته شده توسط Ehsan Rafsanjani در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: جمعه 25 فروردین 1385, 14:14 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •