I have created a custom control which includes a RadScheduler as one of its child controls. I exposed the AdvancedEditTemplate and AdvancedInsertTemplate properties of the RadScheduler in my custom control as shown in the example below.
| Imports Telerik.Web.UI | |
| Public NotInheritable Class CustomScheduler | |
| Inherits CompositeControl | |
| Private WithEvents mScheduler As RadScheduler | |
| <TemplateContainer(GetType(BTAppointmentScheduler)), _ | |
| PersistenceMode(PersistenceMode.InnerProperty)> _ | |
| Public Property AppointmentFormTemplate() As ITemplate | |
| Get | |
| EnsureChildControls() | |
| Return mScheduler.AdvancedEditTemplate | |
| End Get | |
| Set(ByVal value As ITemplate) | |
| EnsureChildControls() | |
| mScheduler.AdvancedEditTemplate = value | |
| mScheduler.AdvancedInsertTemplate = value | |
| End Set | |
| End Property | |
| Protected Overrides Sub CreateChildControls() | |
| Controls.Clear() | |
| mScheduler = New RadScheduler() | |
| Controls.Add(mScheduler) | |
| End Sub | |
| Protected Overrides Sub Render(ByVal writer As HtmlTextWriter) | |
| mScheduler.RenderControl(writer) | |
| End Sub | |
| End Class |
Then I setup my aspx page similiar to the example below.
| <my:CustomScheduler ID="CustomScheduler1" runat="server"> | |
| <AppointmentFormTemplate> | |
| <asp:TextBox ID="SubjectTextBox" runat="server" Rows="5" Columns="20" Text='<%# Bind("Subject") %>' Width="95%" TextMode="MultiLine"></asp:TextBox> | |
| ... | |
| </AppointmentFormTemplate> | |
| </my:CustomScheduler> |
Whenever, I try to create an appointment I get the following exception:
Unable to cast object of type 'System.Web.UI.CompiledTemplateBuilder' to type 'System.Web.UI.IBindableTemplate'.
atTelerik.Web.UI.RadScheduler.CreateFormContainer()
atTelerik.Web.UI.RadScheduler.CreateChildControls(BooleanbindFromDataSource)
atTelerik.Web.UI.RadScheduler.CreateChildControls()
atSystem.Web.UI.Control.EnsureChildControls()
atSystem.Web.UI.Control.PreRenderRecursiveInternal()
atSystem.Web.UI.Control.PreRenderRecursiveInternal()
atSystem.Web.UI.Control.PreRenderRecursiveInternal()
atSystem.Web.UI.Control.PreRenderRecursiveInternal()
atSystem.Web.UI.Control.PreRenderRecursiveInternal()
atSystem.Web.UI.Control.PreRenderRecursiveInternal()
atSystem.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)
atTelerik.Web.UI.RadScheduler.CreateChildControls(BooleanbindFromDataSource)
atTelerik.Web.UI.RadScheduler.CreateChildControls()
atSystem.Web.UI.Control.EnsureChildControls()
atSystem.Web.UI.Control.PreRenderRecursiveInternal()
atSystem.Web.UI.Control.PreRenderRecursiveInternal()
atSystem.Web.UI.Control.PreRenderRecursiveInternal()
atSystem.Web.UI.Control.PreRenderRecursiveInternal()
atSystem.Web.UI.Control.PreRenderRecursiveInternal()
atSystem.Web.UI.Control.PreRenderRecursiveInternal()
atSystem.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)
What am I doing wrong?