


CREATE TABLE [dbo].[Appointments]
(
[ID] INT IDENTITY(1,1) NOT NULL,
[Subject] nvarchar(255) NOT NULL,
[Description] nvarchar(1024) NULL,
[Start] datetime NOT NULL,
[End] datetime NOT NULL,
[RecurrenceRule] nvarchar(1024) NULL,
[RecurrenceParentID] INT NULL,
[Reminder] nvarchar(255) NULL,
[Annotations] nvarchar(50) NULL,
CONSTRAINT [PK_Appointments] PRIMARY KEY CLUSTERED
([ID]),
CONSTRAINT [FK_Appointments_ParentAppointments] FOREIGN KEY
([RecurrenceParentID])
REFERENCES
[dbo].[Appointments] ([ID])
)
GO
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<telerik:RadScriptManager ID="SchedulerRadScriptManager" runat="server">
</telerik:RadScriptManager>
<telerik:RadScheduler runat="server" ID="EmployeeScheduler" Width="850px" DayStartTime="08:00:00"
DayEndTime="18:00:00" DataKeyField="Id" DataSubjectField="Subject" Height="580px"
DataStartField="StartDate" DataEndField="EndDate" DataRecurrenceField="RecurrenceRule"
DataRecurrenceParentKeyField="RecurrenceParentId" DataReminderField="Reminder"
OnAppointmentInsert="EmployeeScheduler_AppointmentInsert" OnAppointmentCreated="EmployeeScheduler_AppointmentCreated">
<AdvancedForm Modal="true" Enabled="true"></AdvancedForm>
<TimelineView UserSelectable="false"></TimelineView>
<TimeSlotContextMenuSettings EnableDefault="true"></TimeSlotContextMenuSettings>
<AppointmentContextMenuSettings EnableDefault="true"></AppointmentContextMenuSettings>
<reminders enabled="true"></reminders>
</telerik:RadScheduler>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void EmployeeScheduler_AppointmentInsert(object sender, AppointmentInsertEventArgs e)
{
object obj=(e.Appointment.RecurrenceParentID);
string subject = e.Appointment.Subject;
}
protected void EmployeeScheduler_AppointmentCreated(object sender, Telerik.Web.UI.AppointmentCreatedEventArgs e)
{
object obj = (e.Appointment.RecurrenceParentID);
string subject = e.Appointment.Subject;
}
}

Dear Telerik support,
I am using the rad scheduler in my one application. I am getting the e.Appointment.RecurrenceParentKeyId is null when i created the recurring appointment. Also i am facing the problem in deleting and updating the recurring appointment.
Please guide me to resolve these problems. I am looking forward of your response
My database structure is given below:
CREATE TABLE [dbo].[Appointments]
(
[ID] INT IDENTITY(1,1) NOT NULL,
[Subject] nvarchar(255) NOT NULL,
[Description] nvarchar(1024) NULL,
[Start] datetime NOT NULL,
[End] datetime NOT NULL,
[RecurrenceRule] nvarchar(1024) NULL,
[RecurrenceParentID] INT NULL,
[Reminder] nvarchar(255) NULL,
[Annotations] nvarchar(50) NULL,
CONSTRAINT [PK_Appointments] PRIMARY KEY CLUSTERED
([ID]),
CONSTRAINT [FK_Appointments_ParentAppointments] FOREIGN KEY
([RecurrenceParentID])
REFERENCES
[dbo].[Appointments] ([ID])
)
GO
My design page code is given below
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<telerik:RadScriptManager ID="SchedulerRadScriptManager" runat="server">
</telerik:RadScriptManager>
<telerik:RadScheduler runat="server" ID="EmployeeScheduler" Width="850px" DayStartTime="08:00:00"
DayEndTime="18:00:00" DataKeyField="Id" DataSubjectField="Subject" Height="580px"
DataStartField="StartDate" DataEndField="EndDate" DataRecurrenceField="RecurrenceRule"
DataRecurrenceParentKeyField="RecurrenceParentId" DataReminderField="Reminder"
OnAppointmentInsert="EmployeeScheduler_AppointmentInsert" OnAppointmentCreated="EmployeeScheduler_AppointmentCreated">
<AdvancedForm Modal="true" Enabled="true"></AdvancedForm>
<TimelineView UserSelectable="false"></TimelineView>
<TimeSlotContextMenuSettings EnableDefault="true"></TimeSlotContextMenuSettings>
<AppointmentContextMenuSettings EnableDefault="true"></AppointmentContextMenuSettings>
<reminders enabled="true"></reminders>
</telerik:RadScheduler>
</div>
</form>
</body>
</html>
My cs Page code is given below:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void EmployeeScheduler_AppointmentInsert(object sender, AppointmentInsertEventArgs e)
{
object obj=(e.Appointment.RecurrenceParentID);
string subject = e.Appointment.Subject;
}
protected void EmployeeScheduler_AppointmentCreated(object sender, Telerik.Web.UI.AppointmentCreatedEventArgs e)
{
object obj = (e.Appointment.RecurrenceParentID);
string subject = e.Appointment.Subject;
}
}

Private Sub RadScheduler1_AppointmentInsert(ByVal sender As Object, ByVal e As Telerik.Web.UI.AppointmentInsertEventArgs) Handles RadScheduler1.AppointmentInsert
Dim CalendarEventBE As New CalendarEventBE
Dim CalendarEventDAL As New CalendarEventDAL
CalendarEventBE.OrganizationKey = ViewState(
"OrganizationKey")
CalendarEventBE.EventName = e.Appointment.Subject
CalendarEventBE.EventStartTime = e.Appointment.Start
CalendarEventBE.EventEndTime = e.Appointment.End
CalendarEventBE.EventComments = e.Appointment.Attributes(
"Description")
CalendarEventBE.RecurrenceRule = e.Appointment.RecurrenceRule
CalendarEventBE.RecurrenceParentID = e.Appointment.RecurrenceParentID
CalendarEventDAL.SaveEvent(CalendarEventBE)
RadScheduler1.Rebind
End Sub

function Sys$WebForms$PageRequestManager$_updatePanel(updatePanelElement, rendering) { for (var updatePanelID in this._scriptDisposes) { if (this._elementContains(updatePanelElement, document.getElementById(updatePanelID))) { var disposeScripts = this._scriptDisposes[updatePanelID]; for (var i = 0, l = disposeScripts.length; i < l; i++) { eval(disposeScripts[i]); } delete this._scriptDisposes[updatePanelID]; } } this._destroyTree(updatePanelElement); updatePanelElement.innerHTML = rendering; }private RadAjaxManager mAjaxManager; protected override void OnInit(EventArgs e) { base.OnInit(e); Page.ClientScript.RegisterStartupScript(typeof(myWebPart), this.ID, "_spOriginalFormAction = document.forms[0].action;_spSuppressFormOnSubmitWrapper=true;", true); if (this.Page.Form != null) { string formOnSubmitAtt = this.Page.Form.Attributes["onsubmit"]; if (!string.IsNullOrEmpty(formOnSubmitAtt) && formOnSubmitAtt == "return _spFormOnSubmitWrapper();") { this.Page.Form.Attributes["onsubmit"] = "_spFormOnSubmitWrapper();"; } } ScriptManager scriptManager = ScriptManager.GetCurrent(Page); if (scriptManager == null) { scriptManager = new RadScriptManager(); Page.Form.Controls.Add(scriptManager); } SetUpAjaxManagerOnPage(); EnsureChildControls(); } protected void SetUpAjaxManagerOnPage() { RadAjaxManager currentAjaxManager = RadAjaxManager.GetCurrent(Page); if (currentAjaxManager == null) { Page.Form.Controls.AddAt(0, AjaxManager); Page.Items.Add(typeof(RadAjaxManager), AjaxManager); } } protected virtual RadAjaxManager AjaxManager { get { if (mAjaxManager == null) { mAjaxManager = RadAjaxManager.GetCurrent(Page); if (mAjaxManager == null) { mAjaxManager = new RadAjaxManager() { ID = "RadAjaxManager1" }; } } return mAjaxManager; } } protected override void CreateChildControls() { Control control = Page.LoadControl(_ascxPath); Controls.Add(control); }protected void Page_Load(object sender, EventArgs e) { RadAjaxManager manager = RadAjaxManager.GetCurrent(Page); manager.EnableAJAX = true; manager.AjaxSettings.AddAjaxSetting(gvActuaciones, pnlGrid); }<asp:Panel ID="pnlGrid" runat="server"> <telerik:RadGrid ID="gvActuaciones" runat="server" OnNeedDataSource="gvActuaciones_NeedDataSource" AutoGenerateColumns="False" ShowStatusBar="True" AllowPaging="True" ShowFooter="True" PageSize="5"> <ClientSettings> <Scrolling AllowScroll="true" UseStaticHeaders="true" SaveScrollPosition="true" ></Scrolling> </ClientSettings> <MasterTableView TableLayout="Fixed" > <Columns> <telerik:GridTemplateColumn AllowFiltering="false" HeaderStyle-Width="60px" HeaderText=""> <ItemTemplate> ... </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn ...> <telerik:GridBoundColumn ...> ... </MasterTableView> </telerik:RadGrid></asp:Panel>