I have devised a solution by taking a different approach. I customized the MessageCreate.ascx and some class overrides as opposed to the custom usercontrol I was attempting before. See my markup and code below. This works perfectly using the standard MonoXRating.ascx.
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="myMessageDetails.ascx.cs" Inherits="myMessageDetails" %>
...
<%@ Register TagPrefix="MonoX" TagName="Rating" Src="/MonoX/Controls/MonoXRating.ascx" %>
...
<asp:Panel runat="server" ID="pnlContainer">
<div class="input-form reply-message">
<dl>
<dd>
<MonoX:Rating ID="ctlRating" runat="server"
ParentEntityType="Message"
OnRating="myOnRating"
OnRated="myOnRated"
ShowRatingHistory="true"
/>
<br />
<asp:Label ID="lblMessage" runat="server" AssociatedControlID="txtMessage"></asp:Label>
<asp:TextBox ID="txtMessage" Rows="8" TextMode="MultiLine" runat="server"></asp:TextBox>
</dd>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using MonoSoftware.MonoX.Controls;
using MonoSoftware.MonoX.Repositories;
using MonoSoftware.MonoX.DAL.EntityClasses;
using MonoSoftware.MonoX.Utilities;
using MonoSoftware.MonoX;
using MonoSoftware.MonoX.API;
using System.Configuration;
using Telerik.Web.UI;
/// <summary>
/// Summary description for myMessageDetails
/// </summary>
public partial class myMessageDetails : MonoSoftware.MonoX.ModuleGallery.SocialNetworking.MessageDetails
{
public myMessageDetails()
{
//
// TODO: Add constructor logic here
//
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
MonoSoftware.MonoX.Controls.MonoXRating r (MonoSoftware.MonoX.Controls.MonoXRating)this.FindControl("ctlRating");
r.ParentEntityId = this.MessageId;
r.DataBind();
}
protected void myOnRating(object sender, EventArgs e)
{
MonoSoftware.MonoX.Controls.MonoXRating r = (MonoSoftware.MonoX.Controls.MonoXRating)this.FindControl("ctlRating");
r.ParentEntityId = this.MessageId;
}
protected void myOnRated(object sender, MonoSoftware.Core.EventArgs<decimal> e)
{
//e.Value has the rating <decimal>.
//do something based upon the rating...
}
}