Yes, I'm using the latest advanced form user controls and
AdvancedForm.js from
the demo.
Here is my AdvancedFormVB.ascx:
<%@ Control Language="VB" AutoEventWireup="true" CodeFile="AdvancedFormVB.ascx.vb"
Inherits="SchedulerTemplatesVB.AdvancedForm" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<%@ Register TagPrefix="scheduler" TagName="ResourceControl" Src="ResourceControlVB.ascx" %>
<%@ Register TagPrefix="scheduler" TagName="MultipleValuesResourceControl" Src="MultipleValuesResourceControlVB.ascx" %>
<%--
<link href="App_Themes/Default/Scheduler.Macys.css" rel="stylesheet"
type="text/css" />
<link href="App_Themes/Default/Calendar.Macys.css" rel="stylesheet"
type="text/css" />
--%>
<div class="rsAdvancedEdit rsAdvancedModal" style="position: relative">
<div class="rsModalBgTopLeft">
</div>
<div class="rsModalBgTopRight">
</div>
<div class="rsModalBgBottomLeft">
</div>
<div class="rsModalBgBottomRight">
</div>
<%-- Title bar. --%>
<div class="rsAdvTitle">
<%-- The rsAdvInnerTitle element is used as a drag handle when the form is modal. --%>
<h1 class="rsAdvInnerTitle">
<%= If((Me.Mode.ToString() = "Edit"), Owner.Localization.AdvancedEditAppointment, Owner.Localization.AdvancedNewAppointment)
%></h1>
<asp:LinkButton runat="server" ID="AdvancedEditCloseButton" CssClass="rsAdvEditClose"
CommandName="Cancel" CausesValidation="false" ToolTip='<%# Owner.Localization.AdvancedClose %>'>
<%= Owner.Localization.AdvancedClose %>
</asp:LinkButton>
</div>
<div class="rsAdvContentWrapper">
<%-- Scroll container - when the form height exceeds MaximumHeight scrollbars will appear on this element--%>
<div class="rsAdvOptionsScroll">
<asp:Panel runat="server" ID="AdvancedEditOptionsPanel" CssClass="rsAdvOptions">
<asp:Panel runat="server" ID="BasicControlsPanel" CssClass="rsAdvBasicControls" OnDataBinding="BasicControlsPanel_DataBinding">
<telerik:RadTextBox runat="server" ID="SubjectText" Width="100%" Label='<%# Owner.Localization.AdvancedSubject + ":" %>'
EnableSingleInputRendering="false" />
<asp:RequiredFieldValidator runat="server" ID="SubjectValidator" ControlToValidate="SubjectText"
EnableClientScript="true" Display="None" CssClass="rsValidatorMsg" />
<ul class="rsTimePickers">
<li class="rsTimePick" style="width: 244px;">
<label for='<%= StartDate.ClientID %>_dateInput_text'>
<%= Owner.Localization.AdvancedFrom %></label><%--
Leaving a newline here will affect the layout, so we use a comment instead.
--%><telerik:RadDatePicker runat="server" ID="StartDate" CssClass="rsAdvDatePicker"
Width="83px" SharedCalendarID="SharedCalendar" Skin='<%# Owner.Skin %>' Culture='<%# Owner.Culture %>'
MinDate="1900-01-01">
<DatePopupButton Visible="False" />
<DateInput ID="DateInput2" runat="server" DateFormat='<%# Owner.AdvancedForm.DateFormat %>'
EmptyMessageStyle-CssClass="riError" EmptyMessage=" " EnableSingleInputRendering="false" />
</telerik:RadDatePicker>
<%--
--%><telerik:RadTimePicker runat="server" ID="StartTime" CssClass="rsAdvTimePicker"
Width="65px" Skin='<%# Owner.Skin %>' Culture='<%# Owner.Culture %>'>
<DateInput ID="DateInput3" runat="server" EmptyMessageStyle-CssClass="riError" EmptyMessage=" "
EnableSingleInputRendering="false" />
<TimePopupButton Visible="false" />
<TimeView ID="TimeView1" runat="server" Columns="2" ShowHeader="false" StartTime="08:00"
EndTime="18:00" Interval="00:30" />
</telerik:RadTimePicker>
</li>
<li class="rsTimeZonesWrapper">
<telerik:RadComboBox runat="server" Visible="true" ID="TimeZonesDropDown" Width="230"
Label="<%# Owner.Localization.AdvancedTimeZone %>" Skin='<%# Owner.Skin %>'>
</telerik:RadComboBox>
</li>
<li class="rsAllDayWrapper">
<asp:CheckBox runat="server" ID="AllDayEvent" CssClass="rsAdvChkWrap" Checked="false" />
</li>
<li class="rsTimePick rsEndTimePick" style="width: 244px;">
<label for='<%= EndDate.ClientID %>_dateInput_text'>
<%= Owner.Localization.AdvancedTo%></label><%--
--%><telerik:RadDatePicker runat="server" ID="EndDate" CssClass="rsAdvDatePicker"
Width="83px" SharedCalendarID="SharedCalendar" Skin='<%# Owner.Skin %>' Culture='<%# Owner.Culture %>'
MinDate="1900-01-01">
<DatePopupButton Visible="False" />
<DateInput ID="DateInput4" runat="server" DateFormat='<%# Owner.AdvancedForm.DateFormat %>'
EmptyMessageStyle-CssClass="riError" EmptyMessage=" " EnableSingleInputRendering="false" />
</telerik:RadDatePicker>
<%--
--%><telerik:RadTimePicker runat="server" ID="EndTime" CssClass="rsAdvTimePicker"
Width="65px" Skin='<%# Owner.Skin %>' Culture='<%# Owner.Culture %>'>
<DateInput ID="DateInput5" runat="server" EmptyMessageStyle-CssClass="riError" EmptyMessage=" "
EnableSingleInputRendering="false" />
<TimePopupButton Visible="false" />
<TimeView ID="TimeView2" runat="server" Columns="2" ShowHeader="false" StartTime="08:00"
EndTime="18:00" Interval="00:30" />
</telerik:RadTimePicker>
</li>
</ul>
<div class="rsReminderWrapper">
<telerik:RadComboBox runat="server" ID="ReminderDropDown" Width="120px" Skin='<%# Owner.Skin %>'
Label="<%# Owner.Localization.Reminder %>">
<Items>
<telerik:RadComboBoxItem Text='<%# Owner.Localization.ReminderNone %>' Value="" />
<telerik:RadComboBoxItem Text='<%# "0 " + Owner.Localization.ReminderMinutes %>'
Value="0" />
<telerik:RadComboBoxItem Text='<%# "5 " + Owner.Localization.ReminderMinutes %>'
Value="5" />
<telerik:RadComboBoxItem Text='<%# "10 " + Owner.Localization.ReminderMinutes %>'
Value="10" />
<telerik:RadComboBoxItem Text='<%# "15 " + Owner.Localization.ReminderMinutes %>'
Value="15" />
<telerik:RadComboBoxItem Text='<%# "30 " + Owner.Localization.ReminderMinutes %>'
Value="30" />
<telerik:RadComboBoxItem Text='<%# "1 " + Owner.Localization.ReminderHour %>' Value="60" />
<telerik:RadComboBoxItem Text='<%# "2 " + Owner.Localization.ReminderHours %>' Value="120" />
<telerik:RadComboBoxItem Text='<%# "3 " + Owner.Localization.ReminderHours %>' Value="180" />
<telerik:RadComboBoxItem Text='<%# "4 " + Owner.Localization.ReminderHours %>' Value="240" />
<telerik:RadComboBoxItem Text='<%# "5 " + Owner.Localization.ReminderHours %>' Value="300" />
<telerik:RadComboBoxItem Text='<%# "6 " + Owner.Localization.ReminderHours %>' Value="360" />
<telerik:RadComboBoxItem Text='<%# "7 " + Owner.Localization.ReminderHours %>' Value="420" />
<telerik:RadComboBoxItem Text='<%# "8 " + Owner.Localization.ReminderHours %>' Value="480" />
<telerik:RadComboBoxItem Text='<%# "9 " + Owner.Localization.ReminderHours %>' Value="540" />
<telerik:RadComboBoxItem Text='<%# "10 " + Owner.Localization.ReminderHours %>' Value="600" />
<telerik:RadComboBoxItem Text='<%# "11 " + Owner.Localization.ReminderHours %>' Value="660" />
<telerik:RadComboBoxItem Text='<%# "12 " + Owner.Localization.ReminderHours %>' Value="720" />
<telerik:RadComboBoxItem Text='<%# "18 " + Owner.Localization.ReminderHours %>' Value="1080" />
<telerik:RadComboBoxItem Text='<%# "1 " + Owner.Localization.ReminderDays %>' Value="1440" />
<telerik:RadComboBoxItem Text='<%# "2 " + Owner.Localization.ReminderDays %>' Value="2880" />
<telerik:RadComboBoxItem Text='<%# "3 " + Owner.Localization.ReminderDays %>' Value="4320" />
<telerik:RadComboBoxItem Text='<%# "4 " + Owner.Localization.ReminderDays %>' Value="5760" />
<telerik:RadComboBoxItem Text='<%# "1 " + Owner.Localization.ReminderWeek %>' Value="10080" />
<telerik:RadComboBoxItem Text='<%# "2 " + Owner.Localization.ReminderWeeks %>' Value="20160" />
</Items>
</telerik:RadComboBox>
</div>
<asp:RequiredFieldValidator runat="server" ID="StartDateValidator" ControlToValidate="StartDate"
EnableClientScript="true" Display="None" CssClass="rsValidatorMsg" />
<asp:RequiredFieldValidator runat="server" ID="StartTimeValidator" ControlToValidate="StartTime"
EnableClientScript="true" Display="None" CssClass="rsValidatorMsg" />
<asp:RequiredFieldValidator runat="server" ID="EndDateValidator" ControlToValidate="EndDate"
EnableClientScript="true" Display="None" CssClass="rsValidatorMsg" />
<asp:RequiredFieldValidator runat="server" ID="EndTimeValidator" ControlToValidate="EndTime"
EnableClientScript="true" Display="None" CssClass="rsValidatorMsg" />
<asp:CustomValidator runat="server" ID="DurationValidator" ControlToValidate="StartDate"
EnableClientScript="false" Display="Dynamic" CssClass="rsValidatorMsg rsInvalid"
OnServerValidate="DurationValidator_OnServerValidate" />
</asp:Panel>
<asp:Panel runat="server" ID="AdvancedControlsPanel" CssClass="rsAdvMoreControls">
<label>
Color:
</label>
<!--
-->
<telerik:RadColorPicker ID="AppointmentColorPicker" runat="server" CssClass="rsAdvResourceValue"
ShowIcon="true" PaletteModes="WebPalette">
</telerik:RadColorPicker>
<asp:Panel runat="server" ID="ResourceControls">
<%-- RESOURCE CONTROLS --%>
<ul class="rsResourceControls">
<li>
<!-- Resource controls should follow the convention Res[Resource Name] for ID -->
<scheduler:ResourceControl runat="server" ID="ResRoom" Type="Room" Label="Room:"
Skin='<%# Owner.Skin %>' />
</li>
<li>
<scheduler:MultipleValuesResourceControl runat="server" ID="ResUser" Type="User"
Label="User: " />
</li>
<!-- Optionally add more ResourceControl instances here -->
</ul>
</asp:Panel>
</asp:Panel>
<telerik:RadTextBox runat="server" ID="DescriptionText" TextMode="MultiLine" Columns="50"
Rows="5" Width="100%" Label='<%# Owner.Localization.AdvancedDescription + ":" %>'
Text='<%# Eval("Description") %>' EnableSingleInputRendering="false" />
<span class="rsAdvResetExceptions">
<asp:LinkButton runat="server" ID="ResetExceptions" OnClick="ResetExceptions_OnClick" />
</span>
<telerik:RadSchedulerRecurrenceEditor runat="server" ID="AppointmentRecurrenceEditor" />
<asp:HiddenField runat="server" ID="OriginalRecurrenceRule" />
<telerik:RadCalendar ID="SharedCalendar" Runat="server" Skin="Sunset">
<WeekendDayStyle CssClass="rcWeekend" />
<CalendarTableStyle CssClass="rcMainTable" />
<OtherMonthDayStyle CssClass="rcOtherMonth" />
<OutOfRangeDayStyle CssClass="rcOutOfRange" />
<DisabledDayStyle CssClass="rcDisabled" />
<SelectedDayStyle CssClass="rcSelected" />
<DayOverStyle CssClass="rcHover" />
<FastNavigationStyle CssClass="RadCalendarMonthView RadCalendarMonthView_Sunset" />
<ViewSelectorStyle CssClass="rcViewSel" />
</telerik:RadCalendar>
</asp:Panel>
</div>
<asp:Panel runat="server" ID="ButtonsPanel" CssClass="rsAdvancedSubmitArea">
<div class="rsAdvButtonWrapper">
<asp:LinkButton runat="server" ID="UpdateButton" CssClass="rsAdvEditSave">
<span><%= Owner.Localization.Save %></span>
</asp:LinkButton>
<asp:LinkButton runat="server" ID="CancelButton" CssClass="rsAdvEditCancel" CommandName="Cancel"
CausesValidation="false">
<span><%= Owner.Localization.Cancel %></span>
</asp:LinkButton>
</div>
</asp:Panel>
</div>
</div>
-------------------------------------------------------------------------------------------
Here is my AdvancedFormVB.ascx.vb:
Imports System
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Drawing
Imports Telerik.Web.UI
Namespace SchedulerTemplatesVB
''' <summary>
''' Specifies the advanced form mode.
''' </summary>
Public Enum AdvancedFormMode
Insert
Edit
End Enum
Partial Public Class AdvancedForm
Inherits UserControl
#Region "Private members"
Private Property FormInitialized() As Boolean
Get
Dim storedValue As Object = ViewState("FormInitialized")
If storedValue IsNot Nothing Then
Return CBool(storedValue)
End If
Return False
End Get
Set(ByVal value As Boolean)
ViewState("FormInitialized") = value
End Set
End Property
Private _mode As AdvancedFormMode = AdvancedFormMode.Insert
#End Region
#Region "Protected properties"
Protected ReadOnly Property Owner() As RadScheduler
Get
Return Appointment.Owner
End Get
End Property
Protected ReadOnly Property Appointment() As Appointment
Get
Dim container As SchedulerFormContainer = DirectCast(BindingContainer, SchedulerFormContainer)
Return container.Appointment
End Get
End Property
#End Region
#Region "Attributes and resources"
<Bindable(BindableSupport.Yes, BindingDirection.TwoWay)> _
Public Property Description() As String
Get
Return DescriptionText.Text
End Get
Set(ByVal value As String)
DescriptionText.Text = value
End Set
End Property
<Bindable(BindableSupport.Yes, BindingDirection.TwoWay)> _
Public Property AppointmentColor() As String
Get
' No color selected
If AppointmentColorPicker.SelectedColor.A = 0 Then
Return Nothing
End If
Return AppointmentColorPicker.SelectedColor.ToArgb().ToString()
End Get
Set(ByVal value As String)
If String.IsNullOrEmpty(value) Then
Return
End If
Dim argbValue As Integer
If Integer.TryParse(value, argbValue) Then
AppointmentColorPicker.SelectedColor = Color.FromArgb(argbValue)
End If
End Set
End Property
<Bindable(BindableSupport.Yes, BindingDirection.TwoWay)> _
Public Property RoomID() As Object
Get
Return ResRoom.Value
End Get
Set(ByVal value As Object)
ResRoom.Value = value
End Set
End Property
<Bindable(BindableSupport.Yes, BindingDirection.TwoWay)> _
Public Property UserID() As Object
Get
Return ResUser.Value
End Get
Set(ByVal value As Object)
ResUser.Value = value
End Set
End Property
#End Region
#Region "Public properties"
Public Property Mode() As AdvancedFormMode
Get
Return _mode
End Get
Set(ByVal value As AdvancedFormMode)
_mode = value
End Set
End Property
<Bindable(BindableSupport.Yes, BindingDirection.TwoWay)> _
Public Property Subject() As String
Get
Return SubjectText.Text
End Get
Set(ByVal value As String)
SubjectText.Text = value
End Set
End Property
<Bindable(BindableSupport.Yes, BindingDirection.TwoWay)> _
Public Property Start() As DateTime
Get
Dim result As DateTime = StartDate.SelectedDate.Value.Date
If AllDayEvent.Checked Then
result = result.Date
Else
Dim time As TimeSpan = StartTime.SelectedDate.Value.TimeOfDay
result = result.Add(time)
End If
Return Owner.DisplayToUtc(result)
End Get
Set(ByVal value As DateTime)
StartDate.SelectedDate = Owner.UtcToDisplay(value)
StartTime.SelectedDate = Owner.UtcToDisplay(value)
End Set
End Property
<Bindable(BindableSupport.Yes, BindingDirection.TwoWay)> _
Public Property [End]() As DateTime
Get
Dim result As DateTime = EndDate.SelectedDate.Value.Date
If AllDayEvent.Checked Then
result = result.Date.AddDays(1)
Else
Dim time As TimeSpan = EndTime.SelectedDate.Value.TimeOfDay
result = result.Add(time)
End If
Return Owner.DisplayToUtc(result)
End Get
Set(ByVal value As DateTime)
EndDate.SelectedDate = Owner.UtcToDisplay(value)
EndTime.SelectedDate = Owner.UtcToDisplay(value)
End Set
End Property
<Bindable(BindableSupport.Yes, BindingDirection.TwoWay)> _
Public Property RecurrenceRuleText() As String
Get
If Owner.RecurrenceSupport Then
Dim dateSpecified As Boolean = StartDate.SelectedDate.HasValue AndAlso EndDate.SelectedDate.HasValue
Dim timeSpecified As Boolean = StartTime.SelectedDate.HasValue AndAlso EndTime.SelectedDate.HasValue
If (AllDayEvent.Checked AndAlso Not dateSpecified) OrElse (Not AllDayEvent.Checked AndAlso Not (dateSpecified AndAlso timeSpecified)) Then
Return String.Empty
End If
AppointmentRecurrenceEditor.StartDate = Start
AppointmentRecurrenceEditor.EndDate = [End]
Dim rrule As RecurrenceRule = AppointmentRecurrenceEditor.RecurrenceRule
If rrule Is Nothing Then
Return String.Empty
End If
Dim originalRule As RecurrenceRule = Nothing
If RecurrenceRule.TryParse(OriginalRecurrenceRule.Value, originalRule) Then
rrule.Exceptions = originalRule.Exceptions
End If
If rrule.Range.RecursUntil <> DateTime.MaxValue Then
rrule.Range.RecursUntil = Owner.DisplayToUtc(rrule.Range.RecursUntil)
If Not AllDayEvent.Checked Then
rrule.Range.RecursUntil = rrule.Range.RecursUntil.AddDays(1)
End If
End If
Return rrule.ToString()
End If
Return String.Empty
End Get
Set(ByVal value As String)
Dim rrule As RecurrenceRule = Nothing
RecurrenceRule.TryParse(value, rrule)
If rrule IsNot Nothing Then
If rrule.Range.RecursUntil <> DateTime.MaxValue Then
Dim recursUntil As DateTime = Owner.UtcToDisplay(rrule.Range.RecursUntil)
If Not IsAllDayAppointment(Appointment) Then
recursUntil = recursUntil.AddDays(-1)
End If
rrule.Range.RecursUntil = recursUntil
End If
AppointmentRecurrenceEditor.RecurrenceRule = rrule
OriginalRecurrenceRule.Value = value
End If
End Set
End Property
<Bindable(BindableSupport.Yes, BindingDirection.TwoWay)> _
Public Property Reminder() As String
Get
If Owner.RemindersSupport AndAlso ReminderDropDown.SelectedValue <> String.Empty Then
Return ReminderDropDown.SelectedValue
End If
Return String.Empty
End Get
Set(ByVal value As String)
Dim item As RadComboBoxItem = ReminderDropDown.Items.FindItemByValue(value)
If item IsNot Nothing Then
item.Selected = True
End If
End Set
End Property
<Bindable(BindableSupport.Yes, BindingDirection.TwoWay)> _
Public Property TimeZoneID() As String
Get
Return TimeZonesDropDown.SelectedValue
End Get
Set(value As String)
Dim item As RadComboBoxItem = TimeZonesDropDown.Items.FindItemByValue(value)
If item IsNot Nothing Then
item.Selected = True
End If
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs)
UpdateButton.ValidationGroup = Owner.ValidationGroup
UpdateButton.CommandName = If(Mode = AdvancedFormMode.Edit, "Update", "Insert")
If Owner.AdvancedForm.EnableTimeZonesEditing Then
PopulateTimeZonesDropDown()
Else
TimeZonesDropDown.Visible = False
End If
If Not Owner.Reminders.Enabled Then
ReminderDropDown.Visible = False
End If
InitializeStrings()
InitializeRecurrenceEditor()
If Not FormInitialized Then
UpdateResetExceptionsVisibility()
End If
'' Me.ResourceControls.Controls(.Visible = False
End Sub
Protected Overrides Sub OnPreRender(e As EventArgs)
MyBase.OnPreRender(e)
If Not FormInitialized Then
If IsAllDayAppointment(Appointment) Then
EndDate.SelectedDate = EndDate.SelectedDate.Value.AddDays(-1)
End If
FormInitialized = True
End If
If [String].IsNullOrEmpty(Appointment.TimeZoneID) Then
TimeZoneID = Owner.TimeZonesProvider.OperationTimeZone.TimeZoneId
Else
TimeZoneID = Appointment.TimeZoneID
End If
End Sub
Private Sub PopulateTimeZonesDropDown()
TimeZonesDropDown.DataSource = Owner.TimeZonesProvider.GetAllTimeZones()
TimeZonesDropDown.DataTextField = "DisplayName"
TimeZonesDropDown.DataValueField = "Id"
End Sub
Protected Sub BasicControlsPanel_DataBinding(ByVal sender As Object, ByVal e As EventArgs)
AllDayEvent.Checked = IsAllDayAppointment(Appointment)
End Sub
Protected Sub DurationValidator_OnServerValidate(ByVal source As Object, ByVal args As ServerValidateEventArgs)
args.IsValid = ([End] - Start) > TimeSpan.Zero
End Sub
Protected Sub ResetExceptions_OnClick(ByVal sender As Object, ByVal e As EventArgs)
Owner.RemoveRecurrenceExceptions(Appointment)
OriginalRecurrenceRule.Value = Appointment.RecurrenceRule
ResetExceptions.Text = Owner.Localization.AdvancedDone
End Sub
#Region "Private methods"
Private Sub InitializeStrings()
SubjectValidator.ErrorMessage = Owner.Localization.AdvancedSubjectRequired
SubjectValidator.ValidationGroup = Owner.ValidationGroup
AllDayEvent.Text = Owner.Localization.AdvancedAllDayEvent
StartDateValidator.ErrorMessage = Owner.Localization.AdvancedStartDateRequired
StartDateValidator.ValidationGroup = Owner.ValidationGroup
StartTimeValidator.ErrorMessage = Owner.Localization.AdvancedStartTimeRequired
StartTimeValidator.ValidationGroup = Owner.ValidationGroup
EndDateValidator.ErrorMessage = Owner.Localization.AdvancedEndDateRequired
EndDateValidator.ValidationGroup = Owner.ValidationGroup
EndTimeValidator.ErrorMessage = Owner.Localization.AdvancedEndTimeRequired
EndTimeValidator.ValidationGroup = Owner.ValidationGroup
DurationValidator.ErrorMessage = Owner.Localization.AdvancedStartTimeBeforeEndTime
DurationValidator.ValidationGroup = Owner.ValidationGroup
ResetExceptions.Text = Owner.Localization.AdvancedReset
SharedCalendar.FastNavigationSettings.OkButtonCaption = Owner.Localization.AdvancedCalendarOK
SharedCalendar.FastNavigationSettings.CancelButtonCaption = Owner.Localization.AdvancedCalendarCancel
SharedCalendar.FastNavigationSettings.TodayButtonCaption = Owner.Localization.AdvancedCalendarToday
End Sub
Private Sub InitializeRecurrenceEditor()
AppointmentRecurrenceEditor.SharedCalendar = SharedCalendar
AppointmentRecurrenceEditor.Culture = Owner.Culture
AppointmentRecurrenceEditor.StartDate = Appointment.Start
AppointmentRecurrenceEditor.EndDate = Appointment.End
End Sub
Private Sub UpdateResetExceptionsVisibility()
If String.IsNullOrEmpty(Owner.WebServiceSettings.Path) Then
ResetExceptions.Visible = False
Dim rrule As RecurrenceRule = RecurrenceRule.Empty
If RecurrenceRule.TryParse(Appointment.RecurrenceRule, rrule) Then
ResetExceptions.Visible = rrule.Exceptions.Count > 0
End If
End If
End Sub
Private Function IsAllDayAppointment(ByVal appointment As Appointment) As Boolean
Dim displayStart As DateTime = Owner.UtcToDisplay(appointment.Start)
Dim displayEnd As DateTime = Owner.UtcToDisplay(appointment.[End])
Return displayStart.CompareTo(displayStart.[Date]) = 0 AndAlso displayEnd.CompareTo(displayEnd.[Date]) = 0
End Function
#End Region
Protected Sub StartDate_SelectedDateChanged(sender As Object, e As Telerik.Web.UI.Calendar.SelectedDateChangedEventArgs) Handles StartDate.SelectedDateChanged
End Sub
End Class
End Namespace