2012-10-03 2 views
5

RadPanelBar의 스크롤 위치를 유지하려고합니다. 내 RadPanelBar은 자동 새로 고침 페이지에 있습니다. RadPanelBar의 막대를 아래로 스크롤하면 페이지 새로 고침시 위쪽으로 이동합니다. 그렇게해서는 안됩니다. 다음 코드로 처리하려고하지만 작동하지 않습니다. 내가 놓친 게 있니?자동 페이지 새로 고침시 RadPanelBar 스크롤이 올라갑니다

은 여기 내 자바 스크립트

<script type="text/javascript"> 
function SetScrollPositionOnlineContacts() { 

    //var pane = splitter.GetPaneById("RadPanelBarRoster"); 
    //document.getElementById("RadPanelBarRoster").scrollTop; 

    var splitter =$find("RadSplitterBottomParent"); 
    var intY = splitter.GetPaneById("RadPanelBarRoster").scrollTop; 

    var date = new Date(); 
    date.setTime(date.getTime() + (1 * 60 * 60 * 1000)); 
    var expires = "; expires=" + date.toGMTString(); 
    document.cookie = "cookieDivOnlineContacts" 
         + "=" 
         + intY 
         + expires + "; path=/"; 
    //document.title = intY; 
} 

function readCookieOnlineContacts(name) { 
    var nameEQ = name + "="; 
    var ca = document.cookie.split(';'); 
    for (var i = 0; i < ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0) == ' ') c = c.substring(1, c.length); 
     if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 
    } 
    return null; 
} 
    </script> 

이며,이 내 HTML 코드 :

여기
<telerik:RadSplitter ID="RadSplitterBottomParent" runat="server" Height="100%" 
    Width="100%" Orientation="Vertical" BackColor="#ECECFF" Skin="WebBlue" 
    LiveResize="True" SplitBarsSize="" HeightOffset="124" Visible="true" 
    BorderSize="0" PanesBorderSize="0"> 

    <!-- Start Left Roster Panel --> 
    <telerik:RadPane ID="RadPaneRoster" runat="server" Width="220px" 
     Scrolling="None"> 
     <telerik:RadContextMenu ID="RadContextMenuRoster" runat="server" 
      OnClientItemClicked="onRosterContextMenuClick" 
      EnableShadows="True"> 
      <Items> 
       <telerik:RadMenuItem runat="server" Text="View 
        Conversation"> 
       </telerik:RadMenuItem> 
       <telerik:RadMenuItem runat="server" Text="View Properties"> 
       </telerik:RadMenuItem> 
       <telerik:RadMenuItem runat="server" Text="Add to Favourites" 
        Enabled="False"> 
       </telerik:RadMenuItem> 
      </Items> 
     </telerik:RadContextMenu> 
     <telerik:RadPanelBar ID="RadPanelBarRoster" runat="server" 
      Skin="Metro" 
      Width="100%" onscroll="SetScrollPositionOnlineContacts()" 
      Height="3000px" OnClientItemClicked="onRosterClick" 
      OnClientContextMenu="onRosterContextMenu" 
      PersistStateInCookie="True" Style="width: 100%; border-top: 0; 
      border-bottom: 0; 
      z-index: 2" ExpandMode="FullExpandedItem" EnableViewState="True" 
      ViewStateMode="Inherit" 
      OnItemClick="RadPanelBarRoster_ItemClick"> 
     </telerik:RadPanelBar> 
    </telerik:RadPane> 
</telerik:RadSplitter> 

페이지 뒤에 내 코드입니다 :

protected void Page_Load(object sender, EventArgs e) 
{ 

    if (!IsPostBack) 
    { 
     StringBuilder sbScript = new StringBuilder(); 
     sbScript.Append(
      "<script language='JavaScript' type='text/javascript'>"); 
     //For order Panel 
     sbScript.Append(
     "document.cookie = cookieDivOnlineContacts + \"" + 
     "=\" + \"\" + -1 + \"; path=/\";"); 

     sbScript.Append("</script>"); 
     //// Make use ScriptManager to register the script 
     ScriptManager.RegisterStartupScript(
      this, 
      this.GetType(), 
      "@@@@MyCallBackAlertScript", 
      sbScript.ToString(), 
      false); 
    } 

    StringBuilder sbScript1 = new StringBuilder(); 
    sbScript1.Append(
     "<script language='JavaScript' type='text/javascript'>"); 
    //For order Panel 
    sbScript1.Append(
     "var strCookOnlineContacts = " + 
     "readCookieRfqOrder(\"cookieDivOnlineContacts\"); " + 
     "document.getElementById(\"RadPanelBarRoster\").scrollTop " + 
     "= strCookOnlineContacts;"); 

    sbScript1.Append("</script>"); 

    // Make use ScriptManager to register the script 
    ScriptManager.RegisterStartupScript(
     this, 
     this.GetType(), 
     "@@@@MyCallBackAlertScript", 
     sbScript1.ToString(), 
     false); 

} 

저는 초보자입니다, 그래서 나를 제공 적절한 도움. 여기, 쿠키 노력하고

+0

maintainScrollPositionOnPostback 페이지 지시문을 true로 설정하려고 했습니까? 도움이되는지 확인하십시오. – Tariqulazam

답변

2

코드의 조각이 ALOS을 시도 또한, 는

이 요청 시작에 위치를 이동 저장되는 자바 스크립트 섹션에서이 코드를 넣어 그것을 다시 할 때 스크롤의 위치를 ​​저장합니다 페이지가 완전히 렌더링됩니다.

function pageLoad() 
     { 
      $("your radID").scroll(function() { 
      SaveScrollPosition(); 
      }); 
     } 

    var yPos; 
     function SaveScrollPosition(){ 
     yPos = $("your rad bar id").scrollTop(); 
     } 

     function ReturnPos() { 
     $("your radID").scrollTop(yPos); 
     } 


    function OnResponseEnd(sender ,eventArgs) 
     { 
      ReturnPos(); 
     } 

    function OnRequestStart(sender ,eventArgs) 
     { 

      SaveScrollPosition(); 
     } 

여기 내가이 문제를 해결할 수 확신 당신의 HTML

<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest" ClientEvents-OnRequestStart="OnRequestStart" ClientEvents-OnResponseEnd="OnResponseEnd"> 
// you code here 
</telerik:RadAjaxManager> 

입니다. 감사합니다 해결책이라면 대답으로 표시하십시오.

+0

안녕하세요 Azeem Raavi 솔루션 주셔서 감사합니다. – Mubarak

관련 문제