ASP.NET buton tetiklenmeden dinamik veri görüntüleme

0

Herkese merhaba.

Asp.net webform ile bir websitesi yazptım sitede yorum alanları var.Update panel kullanarak yorum gönderme işlemini sayfa post olmadan yapabliyorum ve görüntüleyebiliyorum fakat diğer üyeler bu yorumu sayfayı post etmeden göremiyor.Sorum şu,üyelere sayfayı post etmeden yapılan yorumları dinamik olarak nasıl gösterebilirim.(yorumları repeater ile çekiyorum)

Önerileriniz için şimdiden teşekkürler.

kraziya kraziya (15)
4 yıl önce sordu

    Toplam 2 Cevap


    0

    Yanlış anlamadıysam gönderilerin altına yapılan yorumların, o sayfada bulunan kullanıcıların ekranında otomatik güncellenmesini istiyorsun. Örneğin sayfada o an 100 kişi var, bu 100 kişiden biri yorum yazdığında diğer kişiler sayfayı güncellemeden ekranlarındaki yorum bölümü güncellensin istiyorsun.

    Bunu SignalR ile yapabilirsin signalR nedir? nasıl kullanılır? linkinden bilgi alabilirsin.

    alattin alattin (15286)
    4 yıl önce cevaplandı

    • @kraziya signalR ile ilgili sorunlarınızda yardımcı olmaya çalışırım alattin 4 yıl önce

    0

    Cevabınız için teşekkür ederim.Timer ve update panel kullanarak yaptım ama pek sağlıklı gelmedi bana. Ben signalr ile ilgili examplelara baktımda veritabanı ilişkisini beceremedim bir türlü 5 - 6 aydır ilgileniyorum asp.net ile bundan önce bir yazılım geçmişim yok. Şu anda SqlDependency üzerinden yapmaya çalışıyorum. Onda da OnChange tetikleniyor fakat sayfa post olmadan yine gözükmüyor.Kodları da paylaşayım hatta.

    Normalde entity kullanıyorum Ado.net i de ilk defa kullanıyorum.Bu arada internetten baktım bu kodlara da anlayabilmek için yeni boş bir  sayfada denedim.Kod çalışıyor sql'de değişiklik olduğunda OnChange tetikleniyor fakat sayfa post olmadan dinamik bir değişim olmuyor

     

     

     

    public partial class WebForm1 : System.Web.UI.Page
        {
            SqlConnection baglanti;
            SqlCommand cmd;
            SqlDependency dependency;
            protected void Page_Load(object sender, EventArgs e)
            {
               
                PersonelleriGetir();

            }
            void Dependency()
            {
                dependency = new SqlDependency(cmd);
                SqlDependency.Start(baglanti.ConnectionString);

                dependency.OnChange += Dependency_OnChange;
            }
            void PersonelleriGetir()
            {
                try
                {
                    baglanti = new SqlConnection("data source=.;initial catalog=Test;integrated security=True");
                    cmd = new SqlCommand("Select Test,Test1 from dbo.TestTable", baglanti);
                    if (baglanti.State == ConnectionState.Closed)
                        baglanti.Open();

                    Dependency();


                    SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    DataTable Personeller = new DataTable();
                    Personeller.Load(dr);


                    rptTest.DataSource = Personeller;
                    rptTest.DataBind();

                    baglanti.Dispose();
                    cmd.Dispose();
                }
                catch
                {

                }
            }

            private void Dependency_OnChange(object sender, SqlNotificationEventArgs e)
            {

                dependency.OnChange -= Dependency_OnChange;
                PersonelleriGetir();
                rptTest.DataBind();
                lblBil.Text = "Veri Geldi";
            }
        }

    kraziya kraziya (15)
    4 yıl önce cevaplandı

      üyelik gerektirir

      Cevap yazabilmek için üye girişi yapmalısınız.

      Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
      uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol