Private Const PageSize As Integer = 2
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
Dim provider As New XmlSchedulerProvider(Server.MapPath("~/App_Data/Appointments_MultipleResources.xml"), True)
RadScheduler1.Provider = provider
End Sub
Protected Sub RadScheduler1_DataBound(ByVal sender As Object, ByVal e As EventArgs)
RadScheduler1.ResourceTypes.FindByName("User").AllowMultipleValues = True
Dim pageIndex As Integer = If(DirectCast(ViewState("PageIndex"), System.Nullable(Of Integer)), 0)
Dim pagedResources As IList(Of Resource) = New List(Of Resource)(RadScheduler1.Resources.GetResourcesByType("User"))
Dim remainingResources As IList(Of Resource) = New List(Of Resource)()
Dim resourceCount As Integer = pagedResources.Count
Dim pageStart As Integer = pageIndex * PageSize
Dim pageEnd As Integer = pageStart + PageSize
Dim resourceIndex As Integer = 0
For Each resource As Resource In pagedResources
If resourceIndex < pageStart OrElse resourceIndex >= pageEnd Then
RadScheduler1.Resources.Remove(resource)
remainingResources.Add(resource)
End If
System.Math.Max(System.Threading.Interlocked.Increment(resourceIndex), resourceIndex - 1)
Next
Dim pageEndToDisplayInPagingStatus As Integer = pageStart + RadScheduler1.Resources.GetResourcesByType("User").Count
Session("remainingResources") = remainingResources
PagingStatus.Text = String.Format("Showing pages {0} to {1} of {2} total.", pageStart + 1, pageEndToDisplayInPagingStatus, resourceCount)
Dim pageCount As Integer = Math.Ceiling(resourceCount / PageSize)
NextPage.Enabled = pageIndex < pageCount - 1
PrevPage.Enabled = pageIndex > 0
End Sub
Protected Sub NextPage_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim pageIndex As Integer = If(DirectCast(ViewState("PageIndex"), System.Nullable(Of Integer)), 0)
System.Math.Max(System.Threading.Interlocked.Increment(pageIndex), pageIndex - 1)
ViewState("PageIndex") = pageIndex
RadScheduler1.Rebind()
End Sub
Protected Sub PrevPage_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim pageIndex As Integer = If(DirectCast(ViewState("PageIndex"), System.Nullable(Of Integer)), 0)
pageIndex = Math.Max(pageIndex - 1, 0)
ViewState("PageIndex") = pageIndex
RadScheduler1.Rebind()
End Sub
Protected Sub RadScheduler1_FormCreating(ByVal sender As Object, ByVal e As Telerik.Web.UI.SchedulerFormCreatingEventArgs)
If e.Mode = SchedulerFormMode.AdvancedEdit OrElse e.Mode = SchedulerFormMode.AdvancedInsert Then
Dim remainingResources As IList(Of Resource) = TryCast(Session("remainingResources"), List(Of Resource))
If Not remainingResources Is Nothing Then
For Each resource As Resource In remainingResources
RadScheduler1.Resources.Add(resource)
Next
Session.Remove("remainingResources")
End If
End If
End Sub
Protected Sub RadScheduler1_AppointmentCommand(ByVal sender As Object, ByVal e As Telerik.Web.UI.AppointmentCommandEventArgs)
If e.CommandName = "Cancel" Then
RadScheduler1.Rebind()
End If
End Sub