2012-10-03 13 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 पृष्ठ निर्देश को सत्य पर सेट करने का प्रयास किया था? देखें कि यह मदद करता है। – Tariqulazam

उत्तर

2

आप कुकीज़ के साथ कोशिश कर रहे हैं, यहाँ कोड का एक टुकड़ा इस alos कोशिश भी है, JavaScript अनुभाग में इस कोड डाल

इस अनुरोध को प्रारंभ होने पर स्थिति स्क्रॉल की बचत होगी और यह पुस्तक की स्थिति पहले जब स्टोर करेगा पेज पूरी तरह से प्रस्तुत किया गया है।

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

हाय अज़ीम रवि समाधान के लिए धन्यवाद। – Mubarak

संबंधित मुद्दे