Sean Overman
Top achievements
Rank 1
Sean Overman
asked on 21 Apr 2011, 01:56 AM
Here's my situation.
I have grouped view (dayview) with only 2 resources visible at a time. If I add 3 resources to the scheduler, I end up with a horizontal scrollbar to scroll between the 3 resources, keeping 2 on the screen at a time. This is fine, and works correctly.
However, I am modifying the SchedulerCellElement's to suit my business needs, so when I take an action on the schedule, I rebuild the view with custom background colors, etc.
Now when I scroll the view, it appears that its reformatting and repainting the whole schedule view element. That's fine as well. But I cannot seem to find the event for this, so that I can attach to that, and reapply my business logic to the view element.
The RadScheduler exposes a Scroll Event, but it doesn't seem to fire.
What I am missing here??
I have grouped view (dayview) with only 2 resources visible at a time. If I add 3 resources to the scheduler, I end up with a horizontal scrollbar to scroll between the 3 resources, keeping 2 on the screen at a time. This is fine, and works correctly.
However, I am modifying the SchedulerCellElement's to suit my business needs, so when I take an action on the schedule, I rebuild the view with custom background colors, etc.
Now when I scroll the view, it appears that its reformatting and repainting the whole schedule view element. That's fine as well. But I cannot seem to find the event for this, so that I can attach to that, and reapply my business logic to the view element.
The RadScheduler exposes a Scroll Event, but it doesn't seem to fire.
What I am missing here??
6 Answers, 1 is accepted
0
Hi Sean Overman,
The Scroll event you have mentioned comes from the .NET framework base class ScrollableControl and has nothing to do with scrolling through resources. Please refer to the following code snippet for more information on how to subscribe to the desired event:
I hope this helps. Feel free to contact me if you have any additional questions.
Best wishes,
Ivan Todorov
the Telerik team
The Scroll event you have mentioned comes from the .NET framework base class ScrollableControl and has nothing to do with scrolling through resources. Please refer to the following code snippet for more information on how to subscribe to the desired event:
this.radScheduler1.GroupType = GroupType.Resource;SchedulerDayViewGroupedByResourceElement dayViewGroupedElement = (this.radScheduler1.SchedulerElement.ViewElement as SchedulerDayViewGroupedByResourceElement);if(dayViewGroupedElement != null){ dayViewGroupedElement.HScrollBar.ValueChanged+=new EventHandler(HScrollBar_ValueChanged);}I hope this helps. Feel free to contact me if you have any additional questions.
Best wishes,
Ivan Todorov
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
Sean Overman
Top achievements
Rank 1
answered on 28 Apr 2011, 11:43 PM
Attaching to this event works fine, expect if I set the Views "RulerStartScale" or "RuleEndScale" after that, if rebuilds the whole viewelement and wipes out my event handler.
0
Hi Sean,
When changing these properties, the scrollbar is recreated and the new scrollbar does not have an event handler. Since there is a lack of notifications for this kind of events, the only thing I can suggest is to subscribe to the scrollbar's ValueChanged after you have set RulerStartScale or RuleEndScale properties.
I have created a PITS item about improving this functionality so you and other people can vote for it. We will consider implementing it in future releases. Here you can find the PITS Issue: Public URL
I hope this helps. Feel free to write back if you have any additional question.
Best wishes,
Ivan Todorov
the Telerik team
When changing these properties, the scrollbar is recreated and the new scrollbar does not have an event handler. Since there is a lack of notifications for this kind of events, the only thing I can suggest is to subscribe to the scrollbar's ValueChanged after you have set RulerStartScale or RuleEndScale properties.
I have created a PITS item about improving this functionality so you and other people can vote for it. We will consider implementing it in future releases. Here you can find the PITS Issue: Public URL
I hope this helps. Feel free to write back if you have any additional question.
Best wishes,
Ivan Todorov
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
David
Top achievements
Rank 1
answered on 20 Oct 2015, 08:26 AM
Hello
I have a similar problem and the provided code was
really Helpfull but I also need to catch the scroll event of the other
scrollbar
I'm working with TimeLineView and MultidayView in Resource GroupType
Here is the code I'm using :
01.If Me.RadScheduler_PlanningOf.ActiveViewType = SchedulerViewType.Timeline Then02. Dim headerElement As Telerik.WinControls.UI.TimelineGroupingByResourcesElement = TryCast(RadScheduler_PlanningOf.SchedulerElement.ViewElement, TimelineGroupingByResourcesElement)03. If Not IsNothing(headerElement) Then04. AddHandler headerElement.VScrollBar.ValueChanged, AddressOf ScrollBar_ValueChanged05. End If06. Else07. Dim headerElement As SchedulerDayViewGroupedByResourceElement = TryCast(RadScheduler_PlanningOf.SchedulerElement.ViewElement, SchedulerDayViewGroupedByResourceElement)08. If Not IsNothing(headerElement) Then09. AddHandler headerElement.HScrollBar.ValueChanged, AddressOf HScrollBar_ValueChanged10. End If11. End If
Thanks to you it works fine, but when in timelinewiew it only catches ​Vertical ScrollBar event not the ​Horizontal one (I think it's not related to resources), and when in dayView, only catches Horizontal scrollbar event and not the vertical one.
Any Idea ?
0
Hello David,
Thank you for writing.
Here is a sample code snippet demonstrating how to subscribe to the ValueChanged event for both, vertical and horizontal, scroll bars in RadScheduler in SchedulerViewType.Timeline and grouped by resources. This example is applicable for Q3 2015 version:
I hope this information helps. Should you have further questions I would be glad to help.
Regards,
Dess
Telerik
Thank you for writing.
Here is a sample code snippet demonstrating how to subscribe to the ValueChanged event for both, vertical and horizontal, scroll bars in RadScheduler in SchedulerViewType.Timeline and grouped by resources. This example is applicable for Q3 2015 version:
Sub New() InitializeComponent() Dim colors() As Color = {Color.LightBlue, Color.LightGreen, Color.LightYellow, Color.Red, Color.Orange, Color.Pink, Color.Purple, Color.Peru, Color.PowderBlue} Dim names() As String = {"Alan Smith", "Anne Dodsworth", "Boyan Mastoni", "Richard Duncan", "Maria Shnaider"} For i As Integer = 0 To names.Length - 1 Dim resource As New Telerik.WinControls.UI.Resource() resource.Id = New EventId(i) resource.Name = names(i) resource.Color = colors(i) Me.RadScheduler1.Resources.Add(resource) Next i Me.RadScheduler1.GroupType = GroupType.Resource Me.RadScheduler1.ActiveView.ResourcesPerView = 2 Me.RadScheduler1.ActiveViewType = SchedulerViewType.Timeline If Me.RadScheduler1.ActiveViewType = SchedulerViewType.Timeline Then Dim timelineElement As Telerik.WinControls.UI.TimelineGroupingByResourcesElement = TryCast(RadScheduler1.SchedulerElement.ViewElement, TimelineGroupingByResourcesElement) If Not IsNothing(timelineElement) Then AddHandler timelineElement.VScrollBar.ValueChanged, AddressOf VScrollBar_ValueChanged For Each el As RadElement In timelineElement.Children Dim timeLineViewElement As SchedulerTimelineViewElement = TryCast(el, SchedulerTimelineViewElement) If timeLineViewElement IsNot Nothing AndAlso timeLineViewElement.NavigationElement.Visibility = ElementVisibility.Visible Then Dim navElement As TimelineScrollNavigationElement = TryCast(timeLineViewElement.NavigationElement, TimelineScrollNavigationElement) AddHandler navElement.FindDescendant(Of RadScrollBarElement).ValueChanged, AddressOf HScrollBar_ValueChanged End If Next End If End IfEnd SubPrivate Sub VScrollBar_ValueChanged(sender As Object, e As EventArgs) Console.WriteLine("Vertical scroll-bar changed ")End SubPrivate Sub HScrollBar_ValueChanged(sender As Object, e As EventArgs) Console.WriteLine("Horizontal scroll-bar changed ")End SubI hope this information helps. Should you have further questions I would be glad to help.
Dess
Telerik
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
0
David
Top achievements
Rank 1
answered on 22 Oct 2015, 06:58 AM
Thanks a lot Dess, it's exactly what I needed.
