Monday, September 9, 2013

Auto Refresh Page untuk Halaman IOAA

Membuat Auto refresh Halaman
dengan tujuan agar informasi pada halaman hasil penilaian dapat berubah secara realtime tiap 20 detik maka perlu ditambahkan script seperti berikut ini:
untuk fungsi mainnya adalah sebagai berikut ini dengan memanfaatkan sebuah thread maka secara otomatis dapat membuat halaman tersebut selalu auto refresh tiap 20 detik.
public Main()
        {

            try
            {
                RebindData();
                SetTimer();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

           
        }
Script diatas memanggil beberapa fungsi yaitu fungsi RebindData untuk menaruh script utama yang dijalankan sedangkan SetTimer untuk durasi waktu thread berlangsung. Berikut ini contoh script RebindData() dan SetTimer untuk halaman Moderation
        private void RebindData()
        {
            new Action(async () =>
            {
                var user = await MyService.GetLeaderIdAsync(new ServiceReference1.User { UserId = idleader });
                foreach (var usr in user)
                {
                    country = usr.UserCountry;
                }


                var gradeleader = await MyService.GetModerasiLeaderAsync(new ServiceReference1.ModerasiLeader { Country = country });
                if (gradeleader.Count() > 0)
                {
                    foreach (var grd in gradeleader)
                    {
                        dtgrdModeration.ItemsSource = await MyService.GetModerasiLeaderAsync(new ServiceReference1.ModerasiLeader { Country = country });
                        dtgrdModeration.Columns[0].DisplayIndex = 3;
                        dtgrdModeration.Columns[1].DisplayIndex = 2;
                        dtgrdModeration.Columns[2].DisplayIndex = 1;
                        dtgrdModeration.Columns[3].DisplayIndex = 0;
                    }
                }
            }).Invoke();
        }

        protected void dispatcherTimer_Tick(object sender, EventArgs e)
        {
            RebindData();
        }

        private void SetTimer()
        {
            DispatcherTimer dispatcherTimer = new DispatcherTimer();
            dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
            dispatcherTimer.Interval = new TimeSpan(0, 0, 20);
            dispatcherTimer.Start();

        }

No comments:

Post a Comment