在提交带有更新面板和母版页的表单后设置javascript ScrollTo

Set javascript ScrollTo after submit form with updatepanel and masterpages

本文关键字:表单 设置 ScrollTo javascript 母版页 提交 更新      更新时间:2023-09-26

我有一个在更新面板中带有提交函数的表单。

为了测试它,我使用alert,这工作得很好。我提交表单,警报就会弹出。所以代码是有效的。

protected void SendProfileForm_Click(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), 
    "ScrollTo", "alert('test');", true);
}

现在我把它改成这个,这个什么也没做

protected void SendProfileForm_Click(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), 
    "ScrollTo", "window.scrollTo(0, 500);", true);
}

如果我用这个代码窗口做一个onclientclick。scrollTo (0, 500);那么它就起作用了。所以这个javascript代码是工作的。

由于您正在发布异步调用,您必须使用ScriptManager客户端API:

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(MyScrollTo);

这将在每次页面加载时触发function。因此,您需要编写一些逻辑来完成此工作:

var needScroll;
function MyScrollTo(){
     if(needScroll){
        window.scrollTo(0,500);
     }
}
所以你的服务器端代码需要设置needScroll变量:
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), 
    "ScrollTo", "var needScroll = true;", true);

如果您想了解更多关于ScriptManager客户端API的信息,请查看此处