C# 使用updatepanel和MasterPage将javascript Scroll设置为提交表单后

C# 使用updatepanel和MasterPage将javascript Scroll设置为提交表单后,c#,javascript,asp.net,updatepanel,C#,Javascript,Asp.net,Updatepanel,我在updatepanel中有一个带有提交功能的表单 为了测试它,我使用了alert,它工作正常。我提交表单,然后弹出警报。所以代码是有效的 protected void SendProfileForm_Click(object sender, EventArgs e) { ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "ScrollTo", "alert('test');", true)

我在updatepanel中有一个带有提交功能的表单

为了测试它,我使用了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(0500);然后它就开始工作了。因此,这段javascript代码正在运行

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

我做错了什么。

因为您正在发布异步调用,所以必须使用
ScriptManager
客户端API:

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(MyScrollTo);
这将在每次加载页面时触发
功能。因此,您需要为这项工作编写一些逻辑代码:

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的更多信息,请查看。

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

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(MyScrollTo);
这将在每次加载页面时触发
功能。因此,您需要为这项工作编写一些逻辑代码:

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的更多信息,请查看。

您有没有示例?我查过了,但没法使它起作用。我必须从代码后面动态调用脚本,因为我想滚动到页面上的不同部分。谢谢。我详细说明了我的答案。你能再试一次吗?如果它在第一次工作,请再试一次。有时候
ScriptManager
不喜欢你直接使用javascript。你有没有一个例子?我查过了,但没法使它起作用。我必须从代码后面动态调用脚本,因为我想滚动到页面上的不同部分。谢谢。我详细说明了我的答案。你能再试一次吗?如果它在第一次工作,请再试一次。有时
ScriptManager
不喜欢您直接使用javascript。