Hi, I'm using framework 3.5, mssql 2005 and ajaxtoolkit control "Rating".
There is no Onclick() method =(, only onchenged().
If currentrating 3 and user click 3 it doesn't work, when I'm trying to bind data in to database.
Is the any solver for this problem?
Please help.
This is my code:
.aspx:
<html >
<head id="Head1" runat="server">
<title>ASP.NET Example</title>
<style>
/* The following styles are for the Rating */
.ratingStar {
font-size: 0pt;
width: 13px;
height: 12px;
margin: 0px;
padding: 0px;
cursor: pointer;
display: block;
background-repeat: no-repeat;
}
.filledRatingStar {
background-image: url(Images/FilledStar.png);
}
.emptyRatingStar {
background-image: url(Images/EmptyStar.png);
}
.savedRatingStar {
background-image: url(Images/SavedStar.png);
}
/******************************************/
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdateProgress ID="UpdateProgress1" runat="server"
AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="1">
<ProgressTemplate>
Loading...........
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:FormView ID="FormView1" runat="server" DataKeyNames="id"
DataSourceID="SqlDataSource1" DefaultMode="Insert">
<InsertItemTemplate>
<asp:Panel ID="Panel1" runat="server">
<cc1:Rating ID="Rating1" runat="server"
CurrentRating='2'
EmptyStarCssClass="emptyRatingStar" FilledStarCssClass="filledRatingStar"
StarCssClass="ratingStar" WaitingStarCssClass="savedRatingStar"
CommandName="Insert" AutoPostBack="true" OnChanged="Rating2_Changed2" >
</cc1:Rating>
</asp:Panel>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("CustomerRating") %>'></asp:Label>
</ItemTemplate>
</asp:FormView>
<br />
<br />
<asp:sqldatasource
id="SqlDataSource1"
runat="server"
connectionstring="<%$ ConnectionStrings:ConnectionString %>"
selectcommand="SELECT * FROM [Table1]"
insertcommand="INSERT INTO [Table1] ([CustomerRating]) VALUES (@CustomerRating)"
oninserting="SqlDataSource1_Inserting">
<insertparameters>
<asp:QueryStringParameter Name="CustomerRating"
QueryStringField="CustomerRating" Type="String" />
</insertparameters>
</asp:sqldatasource>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1"
AutoGenerateColumns="False" DataKeyNames="id">
<Columns>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False"
ReadOnly="True" SortExpression="id" />
<asp:BoundField DataField="CustomerRating" HeaderText="CustomerRating"
SortExpression="CustomerRating" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
.cs:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void SqlDataSource1_Inserting(object sender, SqlDataSourceCommandEventArgs e)
{
AjaxControlToolkit.Rating Rating2 = (AjaxControlToolkit.Rating)FormView1.FindControl("Rating1");
e.Command.Parameters["@CustomerRating"].Value = Rating2.CurrentRating;
}
protected void Rating2_Changed2(object sender, AjaxControlToolkit.RatingEventArgs e)
{
int value = int.Parse(e.Value);
string result = string.Empty;
switch (value)
{
case 0:
SqlDataSource1.Insert();
break;
case 1:
SqlDataSource1.Insert();
break;
case 2:
SqlDataSource1.Insert();
break;
case 3:
SqlDataSource1.Insert();
break;
case 4:
SqlDataSource1.Insert();
break;
case 5:
SqlDataSource1.Insert();
break;
}
}
}