Ajax Rating Kullanımı

Yayınlanan bir haber,yorum,resim vb bir olayı veya değeri oylama işlemini yıldızlara tıklayarak yapma işlemini Ajax Rating Kontrolü sayesinde yapabiliriz. Uygulamanın çalışan halini konu sonundan indirebilirsiniz…
ajaxoy1
Ajax Rating kontrolünde en çok kullanılan özellikler:
CurrentRating : Bize seçtirilecek olan değeri belirtir.
EmptyStarCssClass : Belirteceğimiz boş yıldız(seçilmemiş hali) css halini belirteceğiz.
FilledStarCssClass : Yıldızımızın seçili durumdaki css halini belirteceğiz.
MaxRating : Yıldız sayısını belirtir , bir diğer deyimle en yüksek seçilecek değeri belirtir.
RatingAlign : Yıldızların yatay yada dikey olarak konumlandırır.
RatingDirection : Yıldızlarımızı sıralayacak yönü belirtir.
StarCssClass : Yıldızlarımızın genel Css halini belirteceğiz.
WaitingStarCssClass : Yıldızlarımızın bekleme durumdaki css halini belirteceğiz..

Şimdi uygulamamıza geçelim oylama işlemi için oyları tutacağımız bir tablo oluşturmamız gerekli
ajaxoy

Form üzerine ToolkitScriptManager, Rating ve Label nesneleri ekliyoruz.

 <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>www.aspnetornekleri.com</title>
    <style type="text/css">
        .bosyildiz
        {
            background-image: url(images/yildiz.gif);
            height: 17px;
            width: 17px;
        }
        .yildizbekle
        {
            background-image: url(images/oylayildiz.gif);
            height: 17px;
            width: 17px;
        }
        .yildizsec
        {
            background-image: url(images/doluyildiz.gif);
            height: 17px;
            width: 17px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </asp:ToolkitScriptManager>
        <asp:Rating ID="Rating1" AutoPostBack="true" OnChanged="oyla" runat="server" StarCssClass="bosyildiz"
            WaitingStarCssClass="yildizbekle" EmptyStarCssClass="bosyildiz" FilledStarCssClass="yildizsec">
        </asp:Rating>
        <br />
        <asp:Label ID="oydurumu" runat="server" Text=""></asp:Label>
    </div>
    </form>
</body>
</html>

Şimdi oylama işlemini yapmak ve oyları getirmek için gerekli kodlarımız yazıyoruz tabi yine projemize
using System.Data;
using System.Data.OleDb;
using AjaxControlToolkit;
eklemeyi unutmuyoruz..

 protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                DataTable dt = this.bilgigetir("SELECT AVG(oy) as oyortalamasi, COUNT(oy) as oysayisi FROM oylar");
                Rating1.CurrentRating = Convert.ToInt32(dt.Rows[0]["oyortalamasi"]);
                int ort = Convert.ToInt32(dt.Rows[0]["oyortalamasi"]);
                oydurumu.Text = string.Format("{0} kişi oy kullandı. Ortalama Oy {1}", dt.Rows[0]["oysayisi"], ort);
            }
        }

        private DataTable bilgigetir(string sorgu)
        {
            DataTable dt = new DataTable();

            using (OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; DATA Source=" + Server.MapPath("App_Data/oylama.accdb")))
            {
                using (OleDbCommand komut = new OleDbCommand(sorgu))
                {
                    using (OleDbDataAdapter da = new OleDbDataAdapter())
                    {
                        komut.CommandType = CommandType.Text;
                        komut.Connection = baglanti;
                        da.SelectCommand = komut;
                        da.Fill(dt);
                    }
                }
                return dt;
            }
        }



        protected void oyla(object sender, RatingEventArgs e)
        {
           
            using (  OleDbConnection baglanti=new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; DATA Source=" + Server.MapPath("App_Data/oylama.accdb")))
            {
                using (OleDbCommand komut = new OleDbCommand("INSERT INTO oylar(oy) VALUES(@oy)"))
                {
                    using (OleDbDataAdapter da = new OleDbDataAdapter())
                    {
                        komut.CommandType = CommandType.Text;
                        komut.Parameters.AddWithValue("@oy", e.Value);
                        komut.Connection = baglanti;
                        baglanti.Open();
                        komut.ExecuteNonQuery();
                        baglanti.Close();
                    }
                }
            }
            Response.Redirect(Request.Url.AbsoluteUri);
        }

Ajax Rating Kullanımı İndir