维护面板滚动位置部分回传ASP.NET

前端之家收集整理的这篇文章主要介绍了维护面板滚动位置部分回传ASP.NET前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个gridview放在ASP.NET面板。
面板和Gridview都在UpdatePanel中。
gridview中有一列导致部分PostBack。
我想在这些回发页面上维护面板滚动位置。
有什么办法吗
问候。

解决方法

在asp.net中没有内置的解决方

但是,这个问题有一个解决方法;你需要用javascript来处理它。

解决方案在这里提到:Maintain Scrollbar Position Inside UpdatePanel After Partial PostBack

2012年5月20日编辑看完评论

  1. <form id="form1" runat="server">
  2. <asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Release" />
  3. <script type="text/javascript">
  4. // It is important to place this JavaScript code after ScriptManager1
  5. var xPos,yPos;
  6. var prm = Sys.WebForms.PageRequestManager.getInstance();
  7.  
  8. function BeginRequestHandler(sender,args) {
  9. if ($get('<%=Panel1.ClientID%>') != null) {
  10. // Get X and Y positions of scrollbar before the partial postback
  11. xPos = $get('<%=Panel1.ClientID%>').scrollLeft;
  12. yPos = $get('<%=Panel1.ClientID%>').scrollTop;
  13. }
  14. }
  15.  
  16. function EndRequestHandler(sender,args) {
  17. if ($get('<%=Panel1.ClientID%>') != null) {
  18. // Set X and Y positions back to the scrollbar
  19. // after partial postback
  20. $get('<%=Panel1.ClientID%>').scrollLeft = xPos;
  21. $get('<%=Panel1.ClientID%>').scrollTop = yPos;
  22. }
  23. }
  24.  
  25. prm.add_beginRequest(BeginRequestHandler);
  26. prm.add_endRequest(EndRequestHandler);
  27. </script>
  28.  
  29. <asp:UpdatePanel ID="UpdatePanel1" runat="server">
  30. <ContentTemplate>
  31. <asp:Panel ID="Panel1" runat="server" Height="300">
  32. <%-- Some stuff which would cause a partial postback goes here --%>
  33. </asp:Panel>
  34. </ContentTemplate>
  35. </asp:UpdatePanel>
  36.  
  37. </form>

以下是代码快照:

猜你在找的asp.Net相关文章