Hi All,
I am using AJAX RATING CONTROL,
If My AVG Rating Count is 3 Then My Filled Stars Wants to be show 3
If My AVG Rating Count is 2.6 Then My Filled Stars Wants to be Show 2 ½ mark
But it was not showing then also it is showing 3 stars.
My Code & My Database Goes Like This,
Create Table Averagerating
(
ID int IDENTITY(1,1) Primary Key,
Rating Float,
UserName Varchar(50)
)
<style type="text/css">
.ratingStar
{
white-space:nowrap;
margin:1em;
height:14px;
}
.ratingStar .ratingItem
{
font-size: 0pt;
width: 13px;
height: 12px;
margin: 0px;
padding: 0px;
display: block;
background-repeat: no-repeat;
cursor:pointer;
}
.ratingStar .Filled
{
background-image: url(Images/FilledStar.PNG);
}
.ratingStar .Empty
{
background-image: url(Images/EmptyStar.PNG);
}
.ratingStar .Saved
{
background-image: url(Images/SavedStar.PNG);
}
</style>
<body>
<form id="form1" runat="server">
<AJAX:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</AJAX:ToolkitScriptManager>
<div>
<asp:UpdatePanel ID="pnlRating" runat="server">
<ContentTemplate>
<table width="35%">
<tr>
<td width="27%">
<asp:Label ID="lblMyRating" runat="server" Text="My Average Rating" Font-Bold="true"></asp:Label>
</td>
<td>
<AJAX:Rating ID="Rating1" runat="server" CurrentRating="3" MaxRating="5"
CssClass="ratingStar" AutoPostBack="true"
StarCssClass="ratingItem" WaitingStarCssClass="Saved"
FilledStarCssClass="Filled" EmptyStarCssClass="Empty"
onchanged="Rating1_Changed">
</AJAX:Rating>
<asp:Label ID="lblDisplay" runat="server" ForeColor="Red" Font-Bold="true"></asp:Label>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
SqlConnection con = new SqlConnection("MY CONNECTION");
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindAverageRatingControl();
}
}
public void BindAverageRatingControl()
{
DataTable dt = new DataTable();
con.Open();
SqlCommand cmd = new SqlCommand("SELECT COUNT(ID) AS NumberOfUsers,SUM(Rating) AS Total FROM Averagerating", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
float COUNT = float.Parse(dt.Rows[0]["NumberOfUsers"].ToString());
float RATING = float.Parse(dt.Rows[0]["Total"].ToString());
float Result = RATING / COUNT;
Rating1.CurrentRating = Convert.ToInt32(Result);
lblDisplay.Text = Result.ToString("0.0");
}
protected void Rating1_Changed(object sender, AjaxControlToolkit.RatingEventArgs e)
{
con.Open();
SqlCommand cmd = new SqlCommand("Insert Into Averagerating(Rating,UserName)values(@Rating,@UserName)", con);
cmd.Parameters.AddWithValue("@Rating", Rating1.CurrentRating);
cmd.Parameters.AddWithValue("@UserName", "DESAI");
cmd.ExecuteNonQuery();
con.Close();
BindAverageRatingControl();
}
Here my doubt is I want to add Half-Star Image on code behind (OR) I want to use Hover Menu.
Here I wont use JQUERY At All.
Please give me the answer
Regards,
VenkiDesai.K