2

我有一个代码隐藏文件,它在其中执行:

Response.Redirect(Request.RawUrl);

在我更新了数据库中的某些内容之后。 (当存储主题的评论时)

我希望在触发响应时使页面自动滚动到页面底部。有人可以告诉我怎么做吗?

4

6 回答 6

2

滚动到页面底部可以使用 javascript 完成。下面是执行相同操作的 javascript 代码。请在正文标签结束之前将以下代码放在页面末尾。

<script>
window.scrollTo(0, document.body.clientHeight);
</script>
于 2012-11-20T12:15:16.787 回答
1

在新评论中添加锚点怎么样。

<a name="NewComment">The comment</a>

然后让您的重定向指向该锚点

Response.Redirect(Request.RawUrl + "#NewComment");

这应该使您的浏览器滚动到该锚点

于 2012-11-20T12:14:30.633 回答
0

滚动到页面底部是客户端而不是服务器端。C# 是服务器端。为了滚动,您必须在页面中添加一些 javascript 来为您执行此操作。

通常,这是按如下方式实现的,编写一个查看 URL 的 javascript 例程。如果 url 中有一些特定信息(例如 &scroll2bottom=true),则 javascript 会执行该操作。这也可以让您滚动到特定的页面元素。

于 2012-11-20T11:56:45.163 回答
0

我使用这个功能,也许它对你有用。它适用于滚动的坐标和延迟秒。尝试使用不同的坐标将使滚动停止在您想要的位置。

在你的 js 中声明这个函数

function WindowsScrollTopAnimado(coordinate,miliseconds) { 

    $('html, body').animate({scrollTop:coordinate}, miliseconds);
}

需要时从服务器端调用它:

Private Sub ScrollToElement()
        Dim Cadena = "<script type='text/javascript'>"
        Cadena += "WindowsScrollTopAnimado( " & 1350 & "," & 1800 & ");"
        Cadena += " </script>"

        ScriptManager.RegisterStartupScript(Me.Page, Me.Page.GetType, "ScrollToControl", Cadena, False)
    End Sub
于 2012-11-20T12:11:07.613 回答
0

我会在你想要滚动到的点插入一个锚点到 HTML 中(这可以永久地在底部的代码中,或者在目标点动态插入),然后重定向到 yoururl.html#anchor

不幸的是,这不是 HTML5/Web2.0,新的现代方式似乎在这里:http ://dev.w3.org/html5/spec/single-page.html#scroll-to-fragid

于 2012-11-20T12:18:27.877 回答
0

我对此感到很开心。我使用的一种简单的代码隐藏方式是将焦点放在屏幕上的最后一个元素上,例如空标签。
例如

lblMyEmptyLabel.Focus();

当然,这不会平滑地滚动窗口,它几乎会将您“传送”到那里。

有时上述方法不起作用(例如,当使用引导模式时)在这种情况下,以下 javascript 适用于我:

<script type="text/javascript">
    function openModal() {
        document.getElementById('myElement').scrollIntoView(true);
        $('#myModal').modal('show');
    }
</script>

如果您使用 asp 元素(例如文本框)滚动到,不要忘记将 clientidmode="static" 部分添加到标签中,这样客户端上的 ID 就不会改变。

于 2019-01-07T10:30:25.037 回答