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

نام تاپیک: کد refresh شدن صفحه هر n ثانیه

  1. #1

    کد refresh شدن صفحه هر n ثانیه

    با سلام... ببخشید من یک سوالی داشتم ، من یک صفحه دارم (web application) که داخلش یک textbox و یک checkbox دارم و میخوام هر وقت checkbox.checked = true بود این صفحه خودش هر n ثانیه refresh بشه ، که مقدار این n رو هم از text box داخل صفحه میگیرم... چه جوری باید این کار رو انجام بدم?

  2. #2
    کاربر دائمی
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    خراسان رضوی - نیشابور
    پست
    188

    نقل قول: کد refresh شدن صفحه هر n ثانیه

    خوب چرا یه کنترل تایمر رو صفحه ات نمیندازی . و توی اون ایونت کلیک یک Button رو فراخوانی کنی.با فعال شدن ایونت کلیک صفحه صفحه ریفرش میشه.

  3. #3

    نقل قول: کد refresh شدن صفحه هر n ثانیه

    خوب من این کار رو کردم و فراخوانی timer هم در page_Load گذاشتم ، ولی جواب نمیده و انگار timer اصلا کار نمیکنه!!!!!!!!!!!!!!!! راه دیگه ای نمیشناسید

  4. #4
    کاربر دائمی آواتار system32
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اصفهان
    سن
    35
    پست
    381

    نقل قول: کد refresh شدن صفحه هر n ثانیه

    از کامپوننت Background Worker استفاده کن

  5. #5
    کاربر دائمی آواتار Farshid007
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    Karaj
    پست
    1,249

    نقل قول: کد refresh شدن صفحه هر n ثانیه

    نقل قول نوشته شده توسط nbe( amateur C sharp مشاهده تاپیک
    خوب من این کار رو کردم و فراخوانی timer هم در page_Load گذاشتم ، ولی جواب نمیده و انگار timer اصلا کار نمیکنه!!!!!!!!!!!!!!!! راه دیگه ای نمیشناسید
    مطمئنی که enabeld تایمر true هستش چون اول که تایمرو اد می کنی false هستش

  6. #6
    کاربر دائمی آواتار Farshid007
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    Karaj
    پست
    1,249

    نقل قول: کد refresh شدن صفحه هر n ثانیه

    نقل قول نوشته شده توسط system32 مشاهده تاپیک
    از کامپوننت Background Worker استفاده کن
    Background Worker چیه؟ میشه یه خورده در مورد کاراییش توضیح بدی!

  7. #7

    نقل قول: کد refresh شدن صفحه هر n ثانیه

    هیچ چیز خاصی نداره فکر کن یه thread مدیریت شده و حاضرو آماده داری استفاده می کنی به عنوان مثال

    public void clickOnSaveButton()
    {
    btn_Save.PerformClick();
    System.ComponentModel.BackgroundWorker g_newThread = new BackgroundWorker();
    // زمانی که نخ جدید شروع به فعالیت میکنه این تابع فراخوانی می شود
    g_newThread.DoWork+=new DoWorkEventHandler(g_newThread_DoWork);
    g_newThread.RunWorkerCompleted +=new RunWorkerCompletedEventHandler(g_newThread_RunWork erCompleted);
    ///فراخوانی با پارامتر new object[]{this, new EventArgs()}
    g_newThread.RunWorkerAsync("پارامتر های مورد نیاز تابعی که قرار فراخوانی بشه");
    }

    private void g_newThread_DoWork(object sender, DoWorkEventArgs e)
    {
    //در صورتی که با پارامتر صدا زده باشید
    object[] parameter = e.Argument as object[];
    if (parameter.Length == 0)
    {
    e.Cancel = true;
    return;
    }//end if
    e.Result = true;
    }

    private void g_newThread_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
    //در صورتی که در تابع فراخوان نخ آن را فعالیت آن را لغو کرده باشید
    if (e.Cancelled) MessageBox.Show("");
    //در صورتی که در تابع فراخوانی شده خطایی رخ دهد
    if (e.Error != null) MessageBox.Show(e.Error.Message);
    //نتیجه خروجی از تابع فراخوانی شده
    if ((Boolean)e.Result) MessageBox.Show("");
    else MessageBox.Show("");
    }

    فقط یک نکته یادت باشه تو این جور مواقع یعنی در thread ها اگر داری یه Control رو مقدار دهی می کنی حتما باید از توابع invoke اون Control استفاده کنی وگرنه توی ویرایش خطا میگیری
    با به عنوان نمونه می تونم بگم فرض کن تابع اجرای thread قرار مقدار یک lable رو عوض کنه پس داریم

    private Label lab_Title = new Label();
    private delegate void changeLableValue(string _NewValue);

    private void ChangeLableVlaue(string _Value)
    {
    lab_Title.Text = _Value;
    }

    private void g_newThread_DoWork(object sender, DoWorkEventArgs e)
    {
    //در صورتی که با پارامتر صدا زده باشید
    object[] parameter = e.Argument as object[];
    if (parameter.Length == 0)
    {
    e.Cancel = true;
    return;
    }//end if
    changeLableValue invokeChangeValue = new changeLableValue(ChangeLableVlaue);
    lab_Title.Invoke(invokeChangeValue, new object[] { "Hello Body" });
    e.Result = true;
    }

    و به عنوان نکته آخر, فکر کنم تایمر هم یک نوع thread باشه پس به شما اجازه تغییر محتوای یک Control رو نمیده مگر اینکه از invoke ها استفاده کنی (البته چون تا به حال از تایمر استفاده نکردم مطمئن نیستم)
    در کل چه از تایمر چه از BackgroundWork استفاده کنی (اگر تایمر رو درست گفته باشم) در این صورت invoke الزامیه
    موفق باشی

  8. #8

    نقل قول: کد refresh شدن صفحه هر n ثانیه

    من کد مربوط به timer رو مینیوسم از component استفاده نمیکنم و کدش هم به این صورت مینویسم :

    public System.Timers.Timer myTimer = new System.Timers.Timer();
    publicvoid Timer_Send()
    {
    int TimeRefresh = Convert.ToInt32((txtSecrefresh.Text)) * 1000;
    double TimerSend = Convert.ToDouble(TimeRefresh);
    myTimer.Interval = TimerSend;
    myTimer.Enabled =
    true;
    myTimer.Elapsed +=
    new System.Timers.ElapsedEventHandler(myTimer_Elapsed1);
    }
    publicvoid myTimer_Elapsed1(object sender, System.Timers.ElapsedEventArgs e)
    {
    if (CheckBox1.Checked == true)
    {
    x()


    }
    }

    ولی این اصلا انگار timer کارنمیکنه، چرا؟؟؟؟؟؟؟؟؟؟؟؟؟؟

  9. #9

    نقل قول: کد refresh شدن صفحه هر n ثانیه

    یه چیز دیگه این رو هم به کدت اضافه کن
                Timer g_timer = new Timer();
    g_timer.Enabled = true;
    //این رو اضافه کن
    g_timer.Start();

  10. #10

    نقل قول: کد refresh شدن صفحه هر n ثانیه

    ممنونم ، این رو هم امتحان میکنم، مرسی.... .

  11. #11

    نقل قول: کد refresh شدن صفحه هر n ثانیه

    سعی کن کدت رو با جاوا بنویسی و ایجاد یه تایمر در جاوا اسکریپت که هر n ثانیه صفحه رو refresh کنه
    از شی setinterval جهت ساخت استفاده کن
    همیشه تا جایی که ممکنه از کد جاوا تو برنامت بهره ببر تا نیازی به برقراری با سرور جهت اجرای دستورها نباشه و مدت زمانی را وقت آن صرف کنه

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

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