This is a migrated thread and some comments may be shown as answers.

[Solved] Scroll Position on insert and update

3 Answers 186 Views
Scheduler
This is a migrated thread and some comments may be shown as answers.
Joshua
Top achievements
Rank 1
Joshua asked on 17 Jun 2008, 05:10 AM
Is there a way to keep the scroll position after you do an insert or and update.. also, is there a way to set the focus of the subject textbox on and inlineinserttemplate.

scroll position is my number one priority....

Thanks

3 Answers, 1 is accepted

Sort by
0
Peter
Telerik team
answered on 18 Jun 2008, 04:38 PM
Hi Joshua,

Using as reference this blog post, I came up with the following solution:

<telerik:RadAjaxManager ID="RadAjaxManager1" ClientEvents-OnRequestStart="OnRequestStartHandler" 
        ClientEvents-OnResponseEnd="OnResponseEndHandler" runat="server">  
        <AjaxSettings> 
            <telerik:AjaxSetting AjaxControlID="RadScheduler1">  
                <UpdatedControls> 
                    <telerik:AjaxUpdatedControl ControlID="RadScheduler1" /> 
                </UpdatedControls> 
            </telerik:AjaxSetting> 
        </AjaxSettings> 
    </telerik:RadAjaxManager> 
    <telerik:RadScriptBlock ID="RadScriptBlock" runat="server">  
    <script type="text/javascript">  
    function OnRequestStartHandler(sender, eventArgs)  
    {  
        if($get('<%=RadScheduler1.ClientID %>') != null)  
        {  
            yPos = $get('<%=RadScheduler1.ClientID %>').children[2].scrollTop;    
            //children[2] is RadScheduler's scrolling div            
        }  
    }  
    function OnResponseEndHandler(sender, eventArgs)  
    {  
        if($get('<%=RadScheduler1.ClientID %>') != null)  
        {  
            $get('<%=RadScheduler1.ClientID %>').children[2].scrollTop = yPos;              
        }  
    }  
    
   </script> 
</telerik:RadScriptBlock> 

Let us know how it goes.

Regards,
Peter
the Telerik team

Instantly find answers to your questions at the new Telerik Support Center
0
Joshua
Top achievements
Rank 1
answered on 18 Jun 2008, 05:42 PM
Good afternoone, I am still having problems with teh scheduler after i add an event that it jumps to the top of the scheduler.  Here is my code.
<body> 
    <form id="form1" runat="server">  
    <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
    <telerik:RadAjaxManager ID="RadAjaxManager1" ClientEvents-OnRequestStart="OnRequestStartHandler" ClientEvents-OnResponseEnd="OnResponseEndHandler" runat="server">    
        <AjaxSettings>   
            <telerik:AjaxSetting AjaxControlID="sched9Hole">    
                <UpdatedControls>   
                    <telerik:AjaxUpdatedControl ControlID="sched9Hole" />   
                </UpdatedControls>   
            </telerik:AjaxSetting>   
        </AjaxSettings>   
    </telerik:RadAjaxManager>   
    <telerik:RadScriptBlock ID="RadScriptBlock" runat="server">    
        <script type="text/javascript">    
            function OnRequestStartHandler(sender, eventArgs)    
            {    
                if($get('<%=sched9Hole.ClientID %>') != null)    
                {    
                    yPos = $get('<%=sched9Hole.ClientID %>').children[2].scrollTop;      
                    //children[2] is RadScheduler's scrolling div              
                }    
            }    
            function OnResponseEndHandler(sender, eventArgs)    
            {    
                if($get('<%=sched9Hole.ClientID %>') != null)    
                {    
                    $get('<%=sched9Hole.ClientID %>').children[2].scrollTop = yPos;                
                }    
            }            
       </script>   
    </telerik:RadScriptBlock>   
    <div style="height: 31px; line-height: 31px; padding-left: 8px;">  
        <asp:Label ID="lblCalendar" runat="server" Text="9 Hole Calendar"/>  
    </div> 
    <div> 
        <telerik:RadScheduler   
            ID="sched9Hole"   
            runat="server"   
            DataEndField="EndTeeTime"   
            DataKeyField="TeeTimeId"   
            DataStartField="StartTeeTime"   
            DataSubjectField="TeeTimeSubject"   
            DayStartTime="06:00:00"   
            DayEndTime="20:33:00"   
            MinutesPerRow="8" 
            Height="97%" 
            ShowAllDayRow="False"   
            ShowFooter="False"   
            ShowViewTabs="False"   
            Skin="Hay"   
            DisplayDeleteConfirmation="false" 
            MonthVisibleAppointmentsPerDay="4"   
            TimeLabelRowSpan="1" 
            DataSourceID="ds9HoleTeeTimes"   
            onformcreating="sched9Hole_FormCreating">  
        </telerik:RadScheduler> 
    </div> 
    <asp:SqlDataSource ID="ds9HoleTeeTimes" runat="server"   
        ConnectionString="<%$ ConnectionStrings:CS_WMGC %>"   
        DeleteCommand="DELETE FROM [9Holes] WHERE [TeeTimeId] = @TeeTimeId"   
        InsertCommand="INSERT INTO [9Holes] ([StartTeeTime], [EndTeeTime], [TeeTimeSubject]) VALUES (@StartTeeTime, @EndTeeTime, @TeeTimeSubject)"   
        SelectCommand="SELECT [TeeTimeId], [StartTeeTime], [EndTeeTime], [TeeTimeSubject] FROM [9Holes]"   
        UpdateCommand="UPDATE [9Holes] SET [StartTeeTime] = @StartTeeTime, [EndTeeTime] = @EndTeeTime, [TeeTimeSubject] = @TeeTimeSubject WHERE [TeeTimeId] = @TeeTimeId">  
        <DeleteParameters> 
            <asp:Parameter Name="TeeTimeId" Type="Int32" /> 
        </DeleteParameters> 
        <UpdateParameters> 
            <asp:Parameter Name="StartTeeTime" Type="DateTime" /> 
            <asp:Parameter Name="EndTeeTime" Type="DateTime" /> 
            <asp:Parameter Name="TeeTimeSubject" Type="String" /> 
            <asp:Parameter Name="TeeTimeId" Type="Int32" /> 
        </UpdateParameters> 
        <InsertParameters> 
            <asp:Parameter Name="StartTeeTime" Type="DateTime" /> 
            <asp:Parameter Name="EndTeeTime" Type="DateTime" /> 
            <asp:Parameter Name="TeeTimeSubject" Type="String" /> 
        </InsertParameters> 
    </asp:SqlDataSource> 
    </form> 
</body> 
0
Dimitar Milushev
Telerik team
answered on 23 Jun 2008, 01:05 PM
Hello Joshua,

We will try to implement this functionality to work automatically in the next version of RadScheduler. Meanwhile here is an improved version of the previous ScriptBlock that should work in your case:

    <telerik:RadScriptBlock ID="RadScriptBlock" runat="server">     
        <script type="text/javascript"
            var yPos = 0;     
            function OnRequestStartHandler(sender, eventArgs)     
            {     
                var scheduler = $find('<%=sched9Hole.ClientID %>'); 
                if(scheduler)     
                {     
                    var contentWrap = $telerik.getElementByClassName(scheduler.get_element(), "rsContent", "div"); 
                     
                    if(contentWrap) 
                    { 
                        yPos = contentWrap.scrollTop; 
                    } 
                }     
            }     
            function OnResponseEndHandler(sender, eventArgs)     
            {     
                var scheduler = $find('<%=sched9Hole.ClientID %>'); 
                if(scheduler)     
                {     
                    var contentWrap = $telerik.getElementByClassName(scheduler.get_element(), "rsContent", "div"); 
                     
                    if(contentWrap) 
                    { 
                        contentWrap.scrollTop = yPos
                    } 
                }     
            }             
       </script>    
    </telerik:RadScriptBlock> 

Replacing the RadScriptBlock in your current code with this one should fix the problem.

Greetings,
Dimitar Milushev
the Telerik team

Instantly find answers to your questions at the new Telerik Support Center
Tags
Scheduler
Asked by
Joshua
Top achievements
Rank 1
Answers by
Peter
Telerik team
Joshua
Top achievements
Rank 1
Dimitar Milushev
Telerik team
Share this question
or