Hi Sir,
Saw your post regarding "OnRatingChanged", and it's amazing. But i would need to apply it on a datalist. Been trying for the past 3 days but i can't seem to find a solution.
Please Please help.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using System.Data.SqlClient;
using System.Configuration;
using AjaxControlToolkit;
public partial class FAQList : System.Web.UI.Page
{
int result = 0;
FAQClass aFed = new FAQClass();
protected void Page_Load(object sender, DataListCommandEventArgs e)
{
if (!IsPostBack)
{
dl_FAQ.DataSource = GetData("SELECT FAQId, ISNULL((SELECT AVG(Rating) FROM Fruit_Ratings WHERE FruitId = AdminFAQ.FAQId), 0) Rating FROM AdminFAQ");
dl_FAQ.DataBind();
}
}
private static DataTable GetData(string query)
{
DataTable dt = new DataTable();
string constr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(query))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
sda.SelectCommand = cmd;
sda.Fill(dt);
}
}
return dt;
}
}
protected void OnRatingChanged(object sender, DataListCommandEventArgs e)
{
int rowIndex = ((sender as Rating).NamingContainer as GridViewRow).RowIndex;
int fruitId = Convert.ToInt32(e.Item.ItemIndex);
string constr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("INSERT INTO Fruit_Ratings VALUES(@FruitId, @Rating)"))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@FruitId", fruitId);
cmd.Parameters.AddWithValue("@Rating", e.Item.ItemIndex);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
Response.Redirect(Request.Url.AbsoluteUri);
}
}
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="FAQList.aspx.cs" Inherits="FAQList" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<style type="text/css">
.Star
{
background-image: url(Photo/Star.gif);
height: 17px;
width: 17px;
}
.WaitingStar
{
background-image: url(Photo/WaitingStar.gif);
height: 17px;
width: 17px;
}
.FilledStar
{
background-image: url(Photo/FilledStar.gif);
height: 17px;
width: 17px;
}
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="masterpage_body" Runat="Server">
<div id="form1" runat="server">
<br />
Country: <asp:DropDownList ID="ddlCountry" AutoPostBack="true" runat="server">
<asp:ListItem Text="All" Value="All" />
<asp:ListItem Text="General" Value="General" />
<asp:ListItem Text="Shipping" Value="Shipping" />
<asp:ListItem Text="Payment" Value="Payment" />
</asp:DropDownList><br />
<asp:DataList ID="dl_FAQ" runat="server" RepeatLayout="Table" RepeatColumns="1"
CellPadding="2" CellSpacing="2" style="text-align: left">
<ItemTemplate>
<table cellpadding="2" cellspacing="0" border="1" style="width: 200px; height: 100px;
border: dashed 2px #04AFEF; background-color: #B0E2F5">
<tr>
<td>
</td>
</tr>
<tr>
<td>
<ItemTemplate>
<cc1:Rating ID="Rating1" AutoPostBack="true" OnChanged="OnRatingChanged" runat="server"
StarCssClass="Star" WaitingStarCssClass="WaitingStar" EmptyStarCssClass="Star"
FilledStarCssClass="FilledStar" CurrentRating='<%# Eval("Rating") %>'>
</cc1:Rating>
</ItemTemplate>
<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</cc1:ToolkitScriptManager>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
<br/>
<br />
</div>
</asp:Content>
Tried my best.
Thank you so much in advance