Hi,
i am looking to create something like this demo
http://demos.telerik.com/aspnet-ajax/scheduler/examples/outlook2007/defaultcs.aspx
i want to use a simple xml file which is located in my App_Data folder, I simply copied all the relevant code from this demo and created a user control for it, All the UI is getting displayed correctly, but the data from the XML file is'nt, please advice what i may be missing?, i tried to debug and i am seeing that the Provider Object is getting populated and is not null, i can also see the innerxml property with the xml.
ASCX file
ASCX.cs file
test.xml
i am looking to create something like this demo
http://demos.telerik.com/aspnet-ajax/scheduler/examples/outlook2007/defaultcs.aspx
i want to use a simple xml file which is located in my App_Data folder, I simply copied all the relevant code from this demo and created a user control for it, All the UI is getting displayed correctly, but the data from the XML file is'nt, please advice what i may be missing?, i tried to debug and i am seeing that the Provider Object is getting populated and is not null, i can also see the innerxml property with the xml.
provider =
new XmlSchedulerProvider(Server.MapPath("~/App_Data/test.xml"), false);
ASCX file
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Calendar.ascx.cs" Inherits="CMSWebParts_Grafica_Calendar" %> <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> <style type="text/css"> .example-panel { width: 743px; height:560px; padding-top: 34px; padding-left: 7px; } .example-panel .title { color:#000; font: 14px 'Segoe UI', Arial, sans-serif; position:absolute; top: 5px; padding-left: 5px; } .RadSplitter { border: none !important; margin: 0 !important; } .RadPanelBar .rootGroup { border-left: none; border-right: none; } .calendar-container { width:220px; margin: 7px auto; } #RadScheduler1Panel { width: 100%; overflow: hidden; } div.RadScheduler { width: 100%; } /* Styles for the appointment Subject */ .RadScheduler .rsAptSubject { text-align: left; margin: 0 0 3px; font-size: 11px; font-weight: bold; color: #369; height: 17px; border-bottom: 1px solid #8bf; width: 100%; } /* Remove the Subject underline for all-day appointments */ .RadScheduler .rsAllDayRow .rsAptSubject { border-bottom: none; } </style> <script type="text/javascript"> /* Firefox resize scrollable content */ function hideScrollableArea(sender, eventArgs) { if ($telerik.isFirefox) $telerik.$('.rsContentScrollArea').css('overflow', 'hidden'); } function showScrollableArea(sender, eventArgs) { if ($telerik.isFirefox) $telerik.$('.rsContentScrollArea').css('overflow', 'auto'); } </script> <telerik:RadAjaxManager runat="Server" ID="RadAjaxManager1"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadCalendar1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadCalendar2" /> <telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadCalendar2"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadCalendar1" /> <telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="chkDevelopment"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="chkMarketing"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="chkQ1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="chkQ2"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadScheduler1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="WebBlue" /> <div class="example-panel exampleContainer"> <div class="title">My Schedule</div> <telerik:RadSplitter runat="server" ID="RadSplitter1" PanesBorderSize="0" Width="720px" Height="100%" Skin="WebBlue"> <telerik:RadPane runat="Server" ID="leftPane" Width="240px" MinWidth="240" MaxWidth="300" Height="100%" Scrolling="None" OnClientResizing="hideScrollableArea" OnClientResized="showScrollableArea" OnClientExpanding="hideScrollableArea" OnClientExpanded="showScrollableArea" OnClientCollapsing="hideScrollableArea" OnClientCollapsed="showScrollableArea"> <div class="calendar-container"> <telerik:RadCalendar runat="server" ID="RadCalendar1" Skin="WebBlue" AutoPostBack="true" EnableMultiSelect="false" DayNameFormat="FirstTwoLetters" EnableNavigation="true" EnableMonthYearFastNavigation="false" OnSelectionChanged="RadCalendar1_SelectionChanged" OnDefaultViewChanged="RadCalendar1_DefaultViewChanged"> </telerik:RadCalendar> <telerik:RadCalendar runat="server" ID="RadCalendar2" Skin="WebBlue" AutoPostBack="true" EnableMultiSelect="false" DayNameFormat="FirstTwoLetters" EnableNavigation="false" EnableMonthYearFastNavigation="false" OnSelectionChanged="RadCalendar2_SelectionChanged"> </telerik:RadCalendar> </div> <telerik:RadPanelBar runat="server" Skin="WebBlue" ID="PanelBar" Width="100%"> <Items> <telerik:RadPanelItem runat="server" Text="My Team Calendars" Expanded="true"> <Items> <telerik:RadPanelItem runat="server"> <ItemTemplate> <div class="rpCheckBoxPanel"> <div> <asp:CheckBox ID="chkDevelopment" runat="server" Text="Development" Checked="true"AutoPostBack="true" OnCheckedChanged="CheckBoxes_CheckedChanged" /> </div> <div> <asp:CheckBox ID="chkMarketing" runat="server" Text="Marketing" Checked="true" AutoPostBack="true"OnCheckedChanged="CheckBoxes_CheckedChanged" /> </div> </div> </ItemTemplate> </telerik:RadPanelItem> </Items> </telerik:RadPanelItem> <telerik:RadPanelItem runat="server" Text="My Calendar" Expanded="true"> <Items> <telerik:RadPanelItem runat="server"> <ItemTemplate> <div class="rpCheckBoxPanel"> <div> <asp:CheckBox ID="chkQ1" runat="server" Text="Personal" Checked="true" AutoPostBack="true"OnCheckedChanged="CheckBoxes_CheckedChanged" /> </div> <div> <asp:CheckBox ID="chkQ2" runat="server" Text="Work" Checked="true" AutoPostBack="true"OnCheckedChanged="CheckBoxes_CheckedChanged" /> </div> </div> </ItemTemplate> </telerik:RadPanelItem> </Items> </telerik:RadPanelItem> </Items> </telerik:RadPanelBar> </telerik:RadPane> <telerik:RadSplitBar runat="server" ID="RadSplitBar2" CollapseMode="Forward" /> <telerik:RadPane runat="Server" ID="rightPane" Scrolling="None" Width="470px" Height="100%"> <telerik:RadScheduler runat="server" ID="RadScheduler1" Skin="WebBlue" ShowFooter="True" Height="100%" DayStartTime="08:00:00" DayEndTime="22:00:00" FirstDayOfWeek="Monday" LastDayOfWeek="Friday" EnableDescriptionField="true" AppointmentStyleMode="Default" DataKeyField="ID" DataSubjectField="Subject" DataStartField="Start" DataEndField="End" OnNavigationComplete="RadScheduler1_NavigationComplete" OnAppointmentDataBound="RadScheduler1_AppointmentDataBound" OnAppointmentDelete="RadScheduler1_AppointmentDelete" OnAppointmentUpdate="RadScheduler1_AppointmentUpdate" OnAppointmentInsert="RadScheduler1_AppointmentInsert"> <AdvancedForm Modal="true" /> <TimelineView UserSelectable="false" /> <ResourceStyles> <%--AppointmentStyleMode must be explicitly set to Default (see above) otherwise setting BackColor/BorderColor will switch the appointments to Simple rendering (no rounded corners and gradients)--%> <telerik:ResourceStyleMapping Type="Calendar" Text="Development"/> <telerik:ResourceStyleMapping Type="Calendar" Text="Marketing" ApplyCssClass="rsCategoryRed" /> <telerik:ResourceStyleMapping Type="Calendar" Text="Work" ApplyCssClass="rsCategoryOrange" /> </ResourceStyles> <AppointmentTemplate> <div class="rsAptSubject"> <%# Eval("Subject") %> </div> <%# Eval("Description") %> </AppointmentTemplate> <TimeSlotContextMenuSettings EnableDefault="true" /> <AppointmentContextMenuSettings EnableDefault="true" /> </telerik:RadScheduler> </telerik:RadPane> </telerik:RadSplitter> </div>ASCX.cs file
using System; using System.Web.UI; using System.Web.UI.WebControls; using Telerik.Web.UI; using Telerik.Web.UI.Calendar; using System.Collections.Generic; public partial class CMSWebParts_Grafica_Calendar : System.Web.UI.UserControl { private Dictionary<int, string> checkBoxIDs; XmlSchedulerProvider Provider { get { XmlSchedulerProvider provider; provider = new XmlSchedulerProvider(Server.MapPath("~/App_Data/test.xml"), false); return provider; } } protected void Page_Init(object sender, EventArgs e) { RadScheduler1.Provider = Provider; /* RadScheduler1.DataStartField = "Start"; RadScheduler1.DataEndField = "End"; RadScheduler1.DataSubjectField = "Subject"; RadScheduler1.DataKeyField = "ID"; */ } private void Page_Load(object sender, EventArgs e) { checkBoxIDs = new Dictionary<int, string>(); checkBoxIDs.Add(1, "chkDevelopment"); checkBoxIDs.Add(2, "chkMarketing"); checkBoxIDs.Add(3, "chkQ1"); checkBoxIDs.Add(4, "chkQ2"); if (!IsPostBack) { RadCalendar1.SelectedDate = RadScheduler1.SelectedDate; SyncCalendars(); } } protected void RadScheduler1_NavigationComplete(object sender, SchedulerNavigationCompleteEventArgs e) { RadCalendar1.FocusedDate = RadScheduler1.SelectedDate; SyncCalendars(); } protected void RadCalendar1_DefaultViewChanged(object sender, DefaultViewChangedEventArgs e) { SyncCalendars(); } private void SyncCalendars() { RadCalendar2.FocusedDate = RadCalendar1.FocusedDate.AddMonths(1); } protected void RadCalendar1_SelectionChanged(object sender, SelectedDatesEventArgs e) { if (RadCalendar1.SelectedDates.Count > 0) { RadScheduler1.SelectedDate = RadCalendar1.SelectedDate; RadCalendar2.SelectedDate = RadCalendar1.SelectedDate; } } protected void RadCalendar2_SelectionChanged(object sender, SelectedDatesEventArgs e) { if (RadCalendar2.SelectedDates.Count > 0) { RadScheduler1.SelectedDate = RadCalendar2.SelectedDate; RadCalendar1.SelectedDate = RadCalendar2.SelectedDate; } } protected void RadScheduler1_AppointmentDataBound(object sender, SchedulerEventArgs e) { RadCalendarDay radCalendarDay = new RadCalendarDay(RadCalendar1); radCalendarDay.Date = e.Appointment.Start; radCalendarDay.ItemStyle.CssClass = "DayWithAppointments"; RadCalendar1.SpecialDays.Add(radCalendarDay); RadCalendar2.SpecialDays.Add(radCalendarDay); e.Appointment.Visible = false; foreach (int key in checkBoxIDs.Keys) { CheckBox chkBox = PanelBar.Items[0].Items[0].FindControl(checkBoxIDs[key]) as CheckBox; if (chkBox == null) chkBox = PanelBar.Items[1].Items[0].FindControl(checkBoxIDs[key]) as CheckBox; if (chkBox.Checked) { Resource userRes = e.Appointment.Resources.GetResource("Calendar", key.ToString()); if (userRes != null) { e.Appointment.Visible = true; } } } } protected void RadScheduler1_AppointmentDelete(object sender, SchedulerCancelEventArgs e) { RadCalendar1.SpecialDays.Clear(); RadCalendar2.SpecialDays.Clear(); } protected void RadScheduler1_AppointmentUpdate(object sender, AppointmentUpdateEventArgs e) { RadCalendar1.SpecialDays.Clear(); RadCalendar2.SpecialDays.Clear(); } protected void RadScheduler1_AppointmentInsert(object sender, SchedulerCancelEventArgs e) { if (e.Appointment.Resources.Count < 1) e.Appointment.Resources.Add(RadScheduler1.Resources.GetResource("Calendar", "1")); } protected void CheckBoxes_CheckedChanged(object sender, EventArgs e) { RadScheduler1.Rebind(); } } test.xml
<?xml version="1.0" encoding="utf-8"?> <Appointments> <NextID>3</NextID> <Resources> <Room> <Key>1</Key> <Text>Meeting room 101</Text> </Room> <Room> <Key>2</Key> <Text>Meeting room 201</Text> </Room> <User> <Key>1</Key> <Text>Alex</Text> </User> <User> <Key>2</Key> <Text>Bob</Text> </User> <User> <Key>3</Key> <Text>Charlie</Text> </User> </Resources> <Appointment> <ID>1</ID> <Subject>Technical meeting</Subject> <Start>2010-09-30T06:00Z</Start> <End>2010-09-30T07:00Z</End> <RecurrenceRule> <![CDATA[ DTSTART:20100930T060000Z DTEND:20100930T070000Z RRULE:FREQ=DAILY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR; ]]> </RecurrenceRule> <Resources> <Room Key="1" /> <User Key="1" /> </Resources> <Attribute Key="CustomAttribute" Value="1" /> </Appointment> <Appointment> <ID>2</ID> <Subject>Lunch</Subject> <Start>2010-09-09T09:00Z</Start> <End>2010-09-09T10:00Z</End> <Resources> <User Key="1" /> </Resources> </Appointment> </Appointments>