首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MultiView & MaintainScrollPositionOnPostBack

MultiView & MaintainScrollPositionOnPostBack
EN

Stack Overflow用户
提问于 2011-01-29 22:15:07
回答 2查看 2.1K关注 0票数 0

我有一个带有MultiView控件的页面,其中一些视图足够长,可以滚动。由于评审中的控件五月需要回发才能正常运行,因此在页面上启用了MaintainScrollPositionOnPostBack。

当用户从一个视图转换到另一个视图时,我遇到了问题。如果它们位于长期视图的底部,并转换为另一个长视图,则新视图将加载并一直滚动到底部。当用户进入MultiView中的新视图时,我需要跳到页面的顶部。

我尝试使用OnActiveViewChanged事件:-调用RegisterStartupScript将window.location.hash设置为我放置在页面顶部的锚点。-调用RegisterStartupScript调用window.scrollTo(0,0) -暂时将MaintainScrollPositionOnPostBack设置为false

问题是,这些都不影响实际的过渡回发,它们在下一次回发时生效,这实际上导致了一个更大的问题。

有谁有经过验证的方法让MultiView页面只在回发到新视图时跳转到页面的顶部?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-31 18:31:28

终于找到了答案/解决办法:4人

您必须通过操作用于跟踪滚动位置的隐藏字段来欺骗ASP.Net。

票数 1
EN

Stack Overflow用户

发布于 2011-01-31 19:33:24

这正是我今天在多视点上遇到的问题。我找到了你的问题然后去找答案。看来我们找到了同一篇文章!

(C#中的文章代码)

代码语言:javascript
复制
 private void ResetScrollPosition()
  {
      if (!ClientScript.IsClientScriptBlockRegistered(this.GetType(), "CreateResetScrollPosition"))
      {
          System.Text.StringBuilder script = new System.Text.StringBuilder();
          script.Append("function ResetScrollPosition() {");
          script.Append("  var scrollX = document.getElementById(\'__SCROLLPOSITIONX\');");
          script.Append("  var scrollY = document.getElementById(\'__SCROLLPOSITIONY\');");
          script.Append("  if (scrollX && scrollY) {");
          script.Append("    scrollX.value = 0;");
          script.Append("    scrollY.value = 0;");
          script.Append("  }");
          script.Append("}");

          //Create the ResetScrollPosition() function
          ClientScript.RegisterClientScriptBlock(this.GetType(), "CreateResetScrollPosition",
             script.ToString(), true);
          //Add the call to the ResetScrollPosition() function
          ClientScript.RegisterStartupScript(this.GetType(), "CallResetScrollPosition", "ResetScrollPosition();", true);
      }
  }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4839795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档