表单回发后最干净的方式来控制页面位置?

时间:2009-06-29 20:09:14

标签: asp.net forms

我有一个表单,当提交成功时会在页面上生成新元素,描述成功提交表单并向用户提供一些“后续步骤”信息。

此成功消息元素位于页面顶部,我想在提交表单后将用户的滚动位置置于此点。

我知道有各种各样的实现选项,我能想到的一切都像是黑客。任何干净有效的建议?最佳做法?

5 个答案:

答案 0 :(得分:1)

为什么不使用AJAX?

没有表单提交,用户没有在页面上留下他们的位置,但是您可以使用javascript在DOM中的任何位置向用户插入消息。

答案 1 :(得分:0)

如果您正在执行ajax帖子,那么您可以使用类似jQuery scrollTop的内容将页面移动到特定位置。

点击此处查看演示:http://demos.flesler.com/jquery/scrollTo/

约什

答案 2 :(得分:0)

使用Javascript在您要滚动的位置在页面上添加命名锚点,然后使用其他javascript代码段导航到该锚点。

它不漂亮,但它最简单。

答案 3 :(得分:0)

尝试以下方法:

if (Page.IsValid)
    Page.MaintainScrollPositionOnPostBack = false;

我认为默认情况下此属性为true,这会导致页面在回发时记住其当前滚动位置。如果您在后面的代码中关闭它,回发应该会将您发送回页面顶部。

答案 4 :(得分:0)

您可以使用SetFocus()方法将焦点设置为特定控件。但是,如果您的调用代码位于更新面板中,这可能不起作用。