Telerik is a leading vendor of ASP.NET AJAX, ASP.NET MVC, Silverlight, WinForms and WPF controls and components, as well as .NET Reporting, .NET ORM , .NET CMS, Code Analysis, Mocking, Team Productivity and Automated Testing Tools. Building on its expertise in interface development and Microsoft technologies, Telerik helps customers build applications with unparalleled richness, responsiveness and interactivity. Telerik products help thousands of companies to be more productive and deliver reliable applications under budget and on time.
Version Q1 2012 released 04/11/2012
select
  • Rate / Review
    • Give your Feedback:

      Rate this demo:


Scheduler / First Look

Calendar
Mon
Tue
Wed
Thu
Fri

  • This example demonstrates how to create an Outlook 2007 user interface using RadSplitter, RadScheduler and RadCalendar.

    Select a day from the calendars to quickly go to this date in RadScheduler. Use the checkboxes in the sliding panes in the bottom left corner to filter appointments by resources.

    RadScheduler is popupulated via Web Service binding. This allows entirely client-side interaction with the control. For example, navigating through dates or opening the advanced form does not cause a postback.

Source Code

C# VB.NET
Show code in new window Demo isolation steps
  • <%@ Page Language="C#" AutoEventWireup="true" Inherits="Telerik.Web.Examples.Scheduler.Outlook2007.DefaultCS"
        CodeFile="DefaultCS.aspx.cs" %>

    <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
    <%@ Register TagPrefix="qsf" Namespace="Telerik.QuickStart" %>
    <%@ Register TagPrefix="qsf" TagName="Header" Src="~/Common/Header.ascx" %>
    <%@ Register TagPrefix="qsf" TagName="HeadTag" Src="~/Common/HeadTag.ascx" %>
    <%@ Register TagPrefix="qsf" TagName="Footer" Src="~/Common/Footer.ascx" %>
    <%@ Register TagPrefix="sds" Namespace="Telerik.Web.SessionDS" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <qsf:HeadTag ID="Headtag1" runat="server" />
        <link rel="Stylesheet" type="text/css" href="styles.css" />
    </head>
    <body class="BODY">
        <form id="Form1" method="post" runat="server">
        <qsf:Header ID="Header1" runat="server" NavigationLanguage="C#" ShowSkinChooser="false" />
        <telerik:radscriptmanager runat="Server" id="RadScriptManager1" />
        <script type="text/javascript">

            var categoryNames = new Array();
            var scheduler = null;
            var calendar1 = null;
            var calendar2 = null;
            var SchedulerNavigationCompleteAlreadyOccurred = false;

            function pageLoad() {

                scheduler = $find('<%=RadScheduler1.ClientID %>');
                calendar1 = $find('<%=RadCalendar1.ClientID %>');
                calendar2 = $find('<%=RadCalendar2.ClientID %>');

            }
            function rebindScheduler() {
                var scheduler = $find('<%=RadScheduler1.ClientID %>');
                scheduler.rebind();
            }

            function OnClientAppointmentsPopulating(sender, eventArgs) {
                addSelectedCategoriesToArray(categoryNames);
                eventArgs.get_schedulerInfo().CategoryNames = categoryNames;
                categoryNames = new Array(); //clear the array
            }

            function addSelectedCategoriesToArray(categoryNamesArray) {
                var $ = $telerik.$;
                var categoryPanelBar = $find('<%=RadPanelBar1.ClientID %>');
                $(':checkbox:checked', categoryPanelBar.get_element()).each(function() {
                    categoryNames.push($(this).attr('name'));
                });
            }

            function OnClientAppointmentWebServiceInserting(sender, args) {
                //set a default Calendar resource
                if (args.get_appointment().get_resources().get_count() == 0) {
                    var defaultCalendarResource = sender.get_resources().getResourceByTypeAndKey("Calendar", 1);
                    args.get_appointment().get_resources().add(defaultCalendarResource);
                }
            }

            function OnCalendar1DateSelected(sender, args) {
                var selectedDateTriplet = sender.get_selectedDates()[0];
                if (selectedDateTriplet) {

                    var selectedDate = new Date(selectedDateTriplet[0], selectedDateTriplet[1] - 1, selectedDateTriplet[2]);
                    scheduler.set_selectedDate(selectedDate);

                }
            }

            function OnCalendar2DateSelected(sender, args) {

                var selectedDateTriplet = sender.get_selectedDates()[0];

                if (selectedDateTriplet) {

                    var selectedDate = new Date(selectedDateTriplet[0], selectedDateTriplet[1] - 1, selectedDateTriplet[2]);
                    scheduler.set_selectedDate(selectedDate);
                }
            }

            function OnCalendar1ViewChanged(sender, eventArgs) {

                var dateTriplet = sender.get_focusedDate();

                if (!SchedulerNavigationCompleteAlreadyOccurred) {
                    var selectedDate = new Date(dateTriplet[0], dateTriplet[1] - 1, dateTriplet[2]);
                    scheduler.set_selectedDate(selectedDate);

                }
                SchedulerNavigationCompleteAlreadyOccurred = false;

                calendar2._navigate(eventArgs.get_step());
            }

            function OnClientNavigationComplete(sender, args) {
                SchedulerNavigationCompleteAlreadyOccurred = true;
                var selectedDate = sender.get_selectedDate();

                calendar1.navigateToDate([selectedDate.format("yyyy"), selectedDate.format("MM"), selectedDate.format("dd")]);
                calendar2.navigateToDate([selectedDate.format("yyyy"), parseInt(selectedDate.format("MM")) + 1, selectedDate.format("dd")]);
            }
          
        </script>
        <div class="example-panel exampleContainer">
            <telerik:radsplitter runat="server" id="RadSplitter1" panesbordersize="0" width="870px"
                height="552px" skin="Windows7">
                <telerik:RadPane runat="Server" ID="leftPane" Width="230px" MinWidth="230" MaxWidth="300"
                    Scrolling="None">
                    <div class="calendar-title">
                        Calendar</div>
                    <div class="calendar-container">
                        <telerik:RadCalendar runat="server" ID="RadCalendar1" Skin="Windows7" EnableMultiSelect="false"
                            FocusedDate="2012/01/31" DayNameFormat="FirstTwoLetters" EnableNavigation="true"
                            EnableMonthYearFastNavigation="true" >
                            <ClientEvents OnDateSelected="OnCalendar1DateSelected" OnCalendarViewChanged="OnCalendar1ViewChanged" />
                        </telerik:RadCalendar>
                        <telerik:RadCalendar runat="server" ID="RadCalendar2" Skin="Windows7" EnableMultiSelect="false"
                            FocusedDate="2012/02/28" DayNameFormat="FirstTwoLetters" EnableNavigation="false"
                            EnableMonthYearFastNavigation="false">
                            <ClientEvents OnDateSelected="OnCalendar2DateSelected" />
                        </telerik:RadCalendar>
                    </div>
                    <telerik:RadPanelBar runat="server" Skin="Windows7" ID="RadPanelBar1" Width="100%">
                        <Items>
                            <telerik:RadPanelItem runat="server" Text="My Team Calendars" Expanded="true">
                                <Items>
                                    <telerik:RadPanelItem runat="server">
                                        <ItemTemplate>
                                            <div class="rpCheckBoxPanel">
                                                <div>
                                                    <input id="chkDevelopment" type="checkbox" title="Development" onclick="rebindScheduler()"
                                                        value="Development" checked="checked" name="Development" />
                                                    <span>Development</span>
                                                </div>
                                                <div>
                                                    <input id="chkMarketing" type="checkbox" title="Marketing" onclick="rebindScheduler()"
                                                        value="Marketing" checked="checked" name="Marketing" />
                                                    <span>Marketing</span>
                                                </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>
                                                    <input id="chkPersonal" type="checkbox" title="Personal" onclick="rebindScheduler()"
                                                        value="Personal" checked="checked" name="Personal" />
                                                    <span>Personal</span>
                                                </div>
                                                <div>
                                                    <input id="chkWork" type="checkbox" title="Work" onclick="rebindScheduler()" value="Work"
                                                        checked="checked" name="Work" />
                                                    <span>Work</span>
                                                </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="625px">
                    <telerik:RadScheduler runat="server" ID="RadScheduler1" Skin="Windows7" Height="551px"
                        OnClientAppointmentWebServiceInserting="OnClientAppointmentWebServiceInserting"
                        OnClientNavigationComplete="OnClientNavigationComplete" OnClientAppointmentsPopulating="OnClientAppointmentsPopulating"
                        SelectedView="MonthView" ShowFooter="false" SelectedDate="2012-01-31" TimeZoneOffset="03:00:00"
                        DayStartTime="08:00:00" DayEndTime="21:00:00" FirstDayOfWeek="Monday" LastDayOfWeek="Friday"
                        EnableDescriptionField="true" AppointmentStyleMode="Default">
                        <WebServiceSettings Path="../WebService/SchedulerWebService.asmx" ResourcePopulationMode="ServerSide" />
                        <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" ApplyCssClass="rsCategoryPattern"
                                BorderColor="#B0CC9B" />
                            <telerik:ResourceStyleMapping Type="Calendar" Text="Marketing" ApplyCssClass="rsCategoryRed" />
                            <telerik:ResourceStyleMapping Type="Calendar" Text="Work" BackColor="#edd5b7" BorderColor="#cdb597" />
                        </ResourceStyles>
                        <TimeSlotContextMenuSettings EnableDefault="true" />
                        <AppointmentContextMenuSettings EnableDefault="true" />
                    </telerik:RadScheduler>
                </telerik:RadPane>
            </telerik:radsplitter>
        </div>
        <qsf:Footer runat="server" ID="Footer1" />
        </form>
    </body>
    </html>

Get more than expected!

Take your time to truly experience the power of RadControls for ASP.NET AJAX with a free 60-day trial backed up by Telerik’s unlimited dedicated support.

Download your RadControls for ASP.NET AJAX trial and jumpstart your development with the available Getting Started resources.

If you have any questions, do not hesitate to contact us at sales@telerik.com.

Copyright 2002-2012 © Telerik. All right reserved
Telerik Inc, 201 Jones Rd, Waltham, MA 02451