2013-05-30 4 views
2

У меня есть менеджер сценариев и панель обновления, размещенная на главной странице.Поддерживать положение прокрутки, когда панель обновления находится на главной странице

  <div id="nav"> 
       <asp:ScriptManager ID="ScriptManager1" runat="server"/> 
      </div> 
      <div id="mainchild"> 
      <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
       <ContentTemplate> 
        <asp:ContentPlaceHolder ID="HdrContentPlaceholderBody" runat="server"> 
        </asp:ContentPlaceHolder> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
     </div> 

так что этот div находится на главной странице, а моя дочерняя страница имеет вид сетки, расположенный внутри панели.

 <asp:Content ID="pagecontent" ContentPlaceHolderID="HdrContentPlaceholderBody" runat="server"> 
      <asp:Panel ID="pnlAssignRole" runat="server" CssClass="popuppnl" Visible="false"> 
      <div class="close-image"> 
       <asp:ImageButton ID="ImageButton2" ToolTip="Close" runat="server" ImageUrl="~/App_Themes/Images/Close1.png" OnClick="btnAsgnCancel_Click" /> 
      </div> 
      <table width="100%"> 
       <tr> 
        <td> 
         <div style="height: 600px; overflow: auto;"> 
          <asp:GridView ID="grdEmpAssigned"> 
          gridview content 
          </GridView> 
         </div> 
        </td> 
       </tr> 
      </table> 
     </asp:Content> 

в GridView на rowcommand это вызывает частичный постбэк, я попытался положить этот кусок JavaScript ниже UpdatePanel, а также ниже ScriptManager в главной странице и в Материалах также, это не помогло .. я думаю, что я не являюсь где разместить этот javascript

 <script type="text/javascript"> 
       var xPos, yPos; 
       var prm = Sys.WebForms.PageRequestManager.getInstance(); 
       prm.add_beginRequest(BeginRequestHandler); 
       prm.add_endRequest(EndRequestHandler); 
        function BeginRequestHandler(sender, args) { 
         try { 
          yPos = $get('ctl00_MainContent_scroll').scrollTop; 
          } 
         catch (err) { } 
        } 
        function EndRequestHandler(sender, args) { 
         try { 
          $get('ctl00_MainContent_scroll').scrollTop = yPos; 
          } 
         catch (err) { } 
        } 
     </script> 

, пожалуйста, руководствоваться мной в этом.

ответ

2

Пройдите по этой ссылке. Это может вам помочь. http://dotnetcrunch.wordpress.com/2011/08/05/maintain-scroll-position-for-the-whole-page-after-asynchronous-postback/

Вот код приведенной выше ссылки. Поместите его в раздел заголовка сайта.

<script type=”text/javascript”> 
    var xPos, yPos; 
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler); 
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(EndRequestHandler); 

    function BeginRequestHandler(sender, args) { 
     xPos = document.body.scrollLeft; 
     yPos = documnet.body.scrollTop; 
    } 

    function EndRequestHandler(sender, args) { 
     document.body.scrollLeft = xPos; 
     document.body.scrollTop = yPos; 
    } 
</script> 
+0

: я уже был в этой связи, это не помогло мне .. :( –

+0

Работает как шарм @Jalpesh я предложил бы добавить код с сайта в случае, если на сайте идет вниз –

+0

!. Добавил код, как вы предложили! –