如果最终用户向下滚动页面,我想通过单击按钮将页面移回顶部。用户单击该按钮,然后我进行验证。错误消息在页面顶部,按钮在页面底部。如果无效,那么我想向用户发送滚动到页面顶部的内容,以便他们可以看到错误消息。
我该怎么做?除非必须,否则我不想使用Java脚本。在C#中是否可以从后面的代码中做到这一点?
我已经尝试过:
ScriptManager.RegisterStartupScript(Page, this.GetType(), "ScrollPage", "scrollToTop();", true);
在运行时出现错误:0x800a1391-JavaScript运行时错误:'scrollToTop'未定义
您可以更改隐藏代码以使用以下代码。
ScriptManager.RegisterStartupScript(Page, this.GetType(), "ScrollPage", "window.scroll(0,0);", true);
这里window.scroll(x,y)
表示滚动的位置(x线,y线)。我已经使用0,0滚动到TOP。
您曾经使用scrollToTop
来使用,需要在aspx中具有此功能,或者使用我的。
有关更多信息,请参考此-http://www.w3schools.com/jsref/met_win_scrollto.asp
更新
由于OP使用updatepanel
,所以我有一个建议可以实现相同目的。在下面使用。我引用了this。
<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args)
{
scrollTo(0,0);
}
</script>
您可以在page指令中尝试以下操作
或者在后面的代码中,您可以编写以下内容:
Page.MaintainScrollPositionOnPostBack = false;
并且如果您要回发异步消息,则请参阅以下消息:
Scroll to top of page after ASP.Net Ajax Async-Postback without JQuery
您甚至不需要C#。您可以使用HTML来完成此操作:
<button type="button" formaction="yoursite.com#top">Click me</button>
尽管您不想使用JavaScript,但您仍可以考虑在视图上使用Asp.Net元素的OnClientClick =“”属性,因此您的业务逻辑仍然可以使用OnClick =“ “属性。
<asp:LinkButton ID="LinkButton1" OnClientClick="javascript:scroll(0,0);" OnClick="btnNextPage_Click" class="generic-button" runat="server">
这只是将滚动回到页面的顶部。如果您想要带有一个不错的动画,则必须包含并使用JavaScript库(例如jQuery)和相关函数。
我无法获得以上任何一项为我工作。
我的场景:我在MultiView中嵌入了GridView。用户单击GridView上的某些内容,然后将Views切换到与单击的内容有关的输出。浏览器将尝试在输出上与单击的行保持相同的位置,该行将位于页面的下方或一直向下。
我尝试运行Javascript滚动到该行上按钮的click事件的顶部。可以,但是在切换到新视图之前,它立即向下滚动。
我最终尝试了此方法,并且有效。我在切换视图并呈现内容之后运行它。
Page.ClientScript.RegisterStartupScript(Me.GetType, "scrollKey", "scrollTo(0, 0);", True)
[当我回到原始视图时,我担心我会再次回到页面的顶部,但是浏览器会滚动回到GridView上的原始位置,这真是太棒了。
我使用javascript对asp.net c#项目进行此操作。当您位于页面顶部时,“滚动到顶部”按钮将被隐藏。您可以使用其他图像/颜色/位置来更改按钮样式。
我将在这里共享所有代码。您可以访问https://techaid24.com/scroll-to-top-button-aspx/
如果遇到问题,可以在这里发表评论。