Sem Göksu
Sem Göksu
Yazılım · Yolculuk · Fenerbahçe
AJAX

AJAX RATING(OYLAMA) KONTROLÜ

Merhaba arkadaşlar, bu makalemizde ajax kontrol tollkit nesnelerinden rating(oylama) kontrolünün nasıl kullanıldığını inceleyeceğiz.

24 Eylül 2007 3 dk okuma 128 3
Merhaba arkadaşlar, bu makalemizde ajax kontrol tollkit nesnelerinden rating(oylama) kontrolünün nasıl kullanıldığını inceleyeceğiz.

Açıklama

Rating kontrolü, oylamada kullanılan yıldızların sayısı ile oylama islemi yapmayı saglayan bir ajax kontrol toolkit nesnesidir. Yıldızların üzerinde gezindiginizde vereceginiz puana göre o kadar yıldız seçili gelir. Rating kontrolünün yönüyü dikey ya da yatay olarak degistirebilirsiniz. Rating kontolü ClientCallBack eventini destekledigi için oylama islemi sırasında postback islemi arkaplanda gerçeklesir. 

Örnek Kullanımı

<ajaxToolkit:Rating ID="Rating" runat="server"

    CurrentRating="2"

    MaxRating="5"

    StarCssClass="ratingStar"

    WaitingStarCssClass="savedRatingStar"

    FilledStarCssClass="filledRatingStar"

    EmptyStarCssClass="emptyRatingStar"

    OnChanged="Rating_Changed" />

Özellikleri

AutoPostBack - True ise oylama islemi yapıldıgında postback islemi gerçeklesir

CurrentRating - Rating Kontrolünün ilk degeri

MaxRating - Rating Kontolünü Max. degeri

StarCssClass - Rating kontrolünde yer alacak yıldızların özelliklerini belirleyen CSS sitili

WaitingStarCssClass - Oylama islemi yapılırken görüntülenecek CSS sitili

FilledStarCssClass - Oylama yapılırken dolu olacak yıldızlar için belirtilecek CSS sitili

EmptyStarCssClass - Bos yıldızlar için belirtilecek CSS sitili

RatingAlign - Rating kontolünün yönü, (dikey yatay)

RatingDirection -  Oylama isleminin baslangıç hizası

OnChanged - Oylama islemi yapılırken tetikleyecek olan eventin adı.

Tag - Rating'e eklenecek olan parametre.

Örnek

Kontrolümüzü tanıdık ve simdi bir örnek yapalım. Genelde oylama islemi yapılırken yıldız iconları kullanılır. Buna baglı olmadıgımızı belirtmek için ben baska bir icon kullanıyorum.

Örnegimizde kitapları listeleyecegiz ve bu kitaplara ait oylama islemlerini yaptıracagız.

 - Oylama islemi yapılırken bu resim görüntülenecek. 

* - Oylanacak degerlerde bu resim görüntülenecek.

* - Bos degerlerde bu resim görüntülenecek.

Ilk olarak yeni bir AJAX tabanlı bir web projesi açalım.

 

Projemizi olusturduktan sonra yeni örnek bir veritabanı olusturalım. Kitapevi isimli yeni bir database olusturacagım. Bu veritabanında kitaplar ve kitappuanları isimli 2 tablo olacak.

 

Kitaplar Tablosu

 

Kitap Puanları Tablosu

Tablomuzu olusturduktan sonra kitaplar tablosuna örnek 2-3 kayıt girelim J

Simdi sayfamıza bir Gridview Ekleyelim.  Gridview'in autogenaretecolumn özelligini false yapalım ve 2 adet template field ekleyelim. 1. field da kitap adı ve açıklama yer alıcak. 2. ise rating kontolü. Benim sayfam bu sekilde oldu J

 

 

Simdi rating konrolümüz için gerekli olan CSS sitilleri yazalım. Ister yeni bir sitil dosyası ekleyelim, istersenized head tagları arasına yazalım hiç fark etmez J

  <style type="text/css">

        .standart

        {      width:20px;

                    height:16px;

                    cursor:crosshair;

                    background-repeat:no-repeat;                  

        }

        .dolu

        {

                    background-image:url(images/dolu.gif);    

        }

        .bos

        {

                    background-image:url(images/bos.gif);                 

        }

        .bekle

        {

                    background-image:url(images/bekle.gif);              

        }

 

    </style>

Simdi de Rating kontrolümüzün özelliklerini yazalım;

<cc1:Rating ID="Rating1" runat="server"

                               CurrentRating="1"

                               StarCssClass="standart"

                               EmptyStarCssClass="bos"

                               WaitingStarCssClass="bekle"

                               FilledStarCssClass="dolu"

       Tag='<%# Eval("KitapID")%>'

                               MaxRating="5"

                               OnChanged="Oyla" >

                            </cc1:Rating>

Evet artık oylama islemimiz hazır J Geriye kalan 2 sey kaldı, birincisi kayıtları listelemek, ikincisi de oylama sonucunu oylar tablosuna yazmak. Ilk olarak listeleme islemini yapalım.

SqlConnection Cnn;

SqlDataAdapter Da;

DataSet Ds;

SqlCommand Cmd;

 

    private void KayitlariGetir()

    {

        Cnn = new SqlConnection("Server=localhost; Database=kitapevi; trusted_connection=yes");

        Da=new SqlDataAdapter("select * from Kitaplar",Cnn);

        Ds = new DataSet();

        Da.Fill(Ds, "tbl");

        GridView1.DataSource = Ds.Tables[0];

        GridView1.DataBind();

    }

 

    protected void Page_Load(object sender, EventArgs e)

    {

        KayitlariGetir();

    }

 

Simdi projemizi çalıstırdıgımızda

 

 Simdi oylama islemini yapalım. Yukarıda da belirttigimiz gibi Oyla isimli bir metod olusturacagız.

     public void Oyla(object sender,AjaxControlToolkit.RatingEventArgs e)

    {    

        Cnn = new SqlConnection("Server=localhost; Database=kitapevi; trusted_connection=yes");

        if (Cnn.State == ConnectionState.Closed) Cnn.Open();

        Cmd = new SqlCommand("Insert Into KitapPuanlari(KitapID, Puan) values("+e.Tag+","+e.Value+")",Cnn);

        int returnvalue = Cmd.ExecuteNonQuery();

    }

 Simdi kodumuzu çalıstıralım.

 

2. Sıradaki 2 numaralı kitaba 4 puan verdim. Oylama sırasında oylama isleminin gerçeklestiginin anlasılması için farklı bir icon koymustuk. Oda üstteki resimde görünmektedir. Bakalım oylama gerçeklesmis mi? Veritabanına gidip kontrol edelim.

 

Evet oylama islemi gerçeklesmis J 2 numaralı kitap 4 puan J

Bu makaleninde sonuna geldik. Baska bir makale de görüsmek üzere.

Sem GÖKSU

MCP | MCAD.NET | MCTS

sem.goksu@yazilimgunlugu.com

Etiketler: #ASP.NET
Paylaş:

Yorumlar (3)

Z
Zeynep Oğuz 15 Ağu 2009 01:56

Gerçekten işe yarar iyi bir çalışma olmuş.En azından ben çok istifade ettim.Özellikle teşekkür ediyorum.Sağolun,emeğinize sağlık.

O
OğuzhanSayraç 11 Kas 2009 22:29

Hocam teşekkürler..Çok faydalı oldu..

R
Recep 31 Ağu 2010 01:35

Merhaba hocam; Birşey sormak istiyorum sizw bu ratin olayında bir kere 5 puan verildiği zaman bir daha neden 5 puan verilmiyor.Ben sistemimde currentratingine ortalamyı yazdırıyorum örneğin ortalama 3 olsun başka birisi gelip oy kullanacağı zaman 3 oyunu veremiyor. Yani currentratinge verdiğim değeri hiç kiömse oy veremiyor. Neden kaynak lanabilir ve çözümleri nelerdir yardımcı olursanızsevinirim.

Yorum bırak

* Yorumlar moderasyon sonrası yayınlanır. E-posta gizli tutulur.