You can allow the user to remove a previous rating by adding an unrate button.
To add an unrate button subclass the SlickRater or AutoSlickRater class and override the Render method with code similar to the following:
C#using System; using System.Data; using System.Data.SqlClient; using System.Configuration; using KrispWare; using System.Web.UI; namespace localhost { [ToolboxData("<{0}:SlickUnrater runat=server>")] public class SlickUnrater : AutoSlickRater { private const string unrateImg = "/images/unrate.gif"; private const string unrateImgOver = "/images/unrate_over.gif"; protected override void Render(HtmlTextWriter writer) { string escClientID = this.ClientID.Replace("'","\\'").Replace("\"","\\\""); string srObj = "slickRaters['" + escClientID + "']"; writer.AddAttribute("onmouseover", String.Format("if ({1}.value > 0) this.src='{0}'; {1}.reset(0)", unrateImgOver,srObj)); writer.AddAttribute("onmouseout",String.Format("this.src='{0}'; {1}.reset()", unrateImg,srObj)); writer.AddAttribute("onclick",String.Format("{0}.click(0)",srObj)); writer.AddAttribute(HtmlTextWriterAttribute.Src,unrateImg); writer.AddAttribute("alt","Click here to remove rating."); writer.AddStyleAttribute("cursor","pointer"); writer.RenderBeginTag(HtmlTextWriterTag.Img); base.Render(writer); } } }
VB.NETImports System Imports System.Data Imports System.Data.SqlClient Imports System.Configuration Imports KrispWare Imports System.Web.UI Namespace localhost <ToolboxData("<{0}:SlickUnrater runat=server>")> _ Public Class SlickUnrater Inherits AutoSlickRater private const String unrateImg = "/images/unrate.gif" private const String unrateImgOver = "/images/unrate_over.gif" Protected Overrides Sub Render(ByVal writer As HtmlTextWriter) Dim escClientID As String = Me.ClientID.Replace("'","\\'").Replace("\"","\\\"") Dim srObj As String = "slickRaters['" + escClientID + "']" writer.AddAttribute("onmouseover", String.Format("if ({1}.value > 0) this.src='{0}'; {1}.reset(0)", unrateImgOver,srObj)) writer.AddAttribute("onmouseout",String.Format("this.src='{0}'; {1}.reset()", unrateImg,srObj)) writer.AddAttribute("onclick",String.Format("{0}.click(0)",srObj)) writer.AddAttribute(HtmlTextWriterAttribute.Src,unrateImg) writer.AddAttribute("alt","Click here to remove rating.") writer.AddStyleAttribute("cursor","pointer") writer.RenderBeginTag(HtmlTextWriterTag.Img) MyBase.Render(writer) End Sub End Class End Namespace
Note the syntax of the srObj string.