Hi Peter,
I'm actually trying to do something similar to this.
I would like to make changes on the Telerik demo
http://demos.telerik.com/aspnet-ajax/webmail/calendar.aspx in order to display appointment color just next to the calendar name.
I wrote this:
class CheckBoxTemplate : ITemplate
{
private RadScheduler _radScheduler;
private RadAjaxManager _radAjaxManager;
private RadAjaxLoadingPanel _radAjaxLoadingPanel;
private ClientScriptManager _clientScript;
public RadScheduler RadScheduler
{
get
{
return _radScheduler;
}
set
{
_radScheduler = value;
}
}
public RadAjaxManager RadAjaxManager
{
get
{
return _radAjaxManager;
}
set
{
_radAjaxManager = value;
}
}
public RadAjaxLoadingPanel RadAjaxLoadingPanel
{
get
{
return _radAjaxLoadingPanel;
}
set
{
_radAjaxLoadingPanel = value;
}
}
public ClientScriptManager ClientScript
{
get
{
return _clientScript;
}
set
{
_clientScript = value;
}
}
public void InstantiateIn(Control container)
{
IEnumerable<
ResourceStyleMapping
> Ressources = RadScheduler.ResourceStyles.OfType<
ResourceStyleMapping
>();
HtmlGenericControl OuterDiv = new HtmlGenericControl("div");
OuterDiv.Attributes["class"] = "rpCheckBoxPanel";
foreach (ResourceStyleMapping Resource in Ressources)
{
HtmlGenericControl InnerDiv = new HtmlGenericControl("div");
HtmlGenericControl ColorDiv = new HtmlGenericControl("div");
ColorDiv.Attributes["style"] = "background:transparent url('" + ClientScript.GetWebResourceUrl(typeof(RadScheduler), "Telerik.Web.UI.Skins.Common.Scheduler.rsAppointment" + Resource.ApplyCssClass.Replace("rsCategory", "") + "Bg.png") + "') no-repeat -10px -10px";
ColorDiv.InnerHtml = " ";
InnerDiv.Controls.Add(ColorDiv);
CheckBox CheckBox = new CheckBox();
CheckBox.ID = "chkType" + int.Parse(Resource.Key.ToString());
CheckBox.Text = Resource.Text;
CheckBox.Checked = true;
CheckBox.AutoPostBack = true;
CheckBox.CheckedChanged += new EventHandler(CheckBoxes_CheckedChanged);
InnerDiv.Controls.Add(CheckBox);
OuterDiv.Controls.Add(InnerDiv);
AjaxSetting Setting = new AjaxSetting(CheckBox.ID);
Setting.UpdatedControls.Add(new AjaxUpdatedControl(RadScheduler.ID, RadAjaxLoadingPanel.ID));
RadAjaxManager.AjaxSettings.Add(Setting);
}
container.Controls.Add(OuterDiv);
}
protected void CheckBoxes_CheckedChanged(object sender, EventArgs e)
{
RadScheduler.Rebind();
}
}
However, i'm afraid the following is not displaying what it supposed to:
Do you have any idea on how to fix this?
Many thanks,