From the aspx file:
<asp:Repeater id="Repeater" runat="server"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem,"RatedID") %>: <cc1:SlickRater id="SlickRater" runat="server" RatedID=<%# DataBinder.Eval(Container.DataItem,"RatedID") %> AverageRating=<%# DataBinder.Eval(Container.DataItem,"AverageRating") %> UserRating=<%# DataBinder.Eval(Container.DataItem,"UserRating") %> OnRatingChanged="SlickRater_RatingChanged"> </cc1:SlickRater> <br/> </ItemTemplate> </asp:Repeater>
The code-behind file:
C#using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace KrispWare { public class SlickRepeat : System.Web.UI.Page { protected KrispWare.SlickRater SlickRater; protected System.Web.UI.WebControls.Repeater Repeater; protected SlickData[] SD = new SlickData[]{new SlickData("one",0,2.3f), new SlickData("two",2,1.0f), new SlickData("three",3,4.3f), new SlickData("four",0,3.3f), new SlickData("five",5,5.0f)}; private void Page_Load(object sender, System.EventArgs e) { if (!IsPostBack) { Repeater.DataSource = SD; Repeater.DataBind(); } } #region Web Form Designer generated code protected void SlickRater_RatingChanged(object sender, System.EventArgs e) { // handle rating click event here } } public class SlickData { private float averageRating; public float AverageRating { get { return averageRating; } set { averageRating = value; } } private int userRating; public int UserRating { get { return userRating; } set { userRating = value; } } private string rid; public string RatedID { get { return rid; } set { rid = value; } } public SlickData (string rid, int userRating, float avgRating) { this.rid = rid; averageRating = avgRating; this.userRating = userRating; } } }
VB.NETImports System Imports System.Collections Imports System.ComponentModel Imports System.Data Imports System.Drawing Imports System.Web Imports System.Web.SessionState Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Web.UI.HtmlControls Namespace KrispWare Public Class SlickRepeat Inherits System.Web.UI.Page Protected SlickRater As KrispWare.SlickRater Protected Repeater As System.Web.UI.WebControls.Repeater Protected SlickData() SD = Shadows Property SlickData("one",0,2.3f),() As SlickData(){New End Property Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) If Not IsPostBack Then Repeater.DataSource = SD Repeater.DataBind() End If End Sub Protected Sub SlickRater_RatingChanged(ByVal sender As Object, ByVal e As System.EventArgs) ' handle rating click event here End Sub End Class Public Class SlickData Private averageRating As single Public Property AverageRating() As single Get Return averageRating End Get Set (ByVal Value As single) averageRating = value End Set End Property Private userRating As Integer Public Property UserRating() As Integer Get Return userRating End Get Set (ByVal Value As Integer) userRating = value End Set End Property Private rid As String Public Property RatedID() As String Get Return rid End Get Set (ByVal Value As String) rid = value End Set End Property Public Sub New(ByVal rid As String, ByVal userRating As Integer, ByVal avgRating As single) Me.rid = rid averageRating = avgRating Me.userRating = userRating End Sub End Class End Namespace