0

我正在开发一个 ASP.NET 页面。目前页面上没有 AJAX。在不同按钮单击事件的代码中,我正在注册下面的脚本。该脚本的目的是将窗口滚动到特定的锚标记。方法如下:

public void RegisterAnchor(string anchorTag)
{
    Page.ClientScript.RegisterStartupScript(Page.GetType(), "navigate",
          "window.onload = function() {window.location.hash='#" + anchorTag + "';}", true);
}

我有两个不同的锚标签是有效的并且以相同的方式定义。但是,一个正在工作,一个没有。我可以检查什么来确定这种行为的原因?

ascx 中的锚标记:

<a name="EditDlg"></a>     
4

1 回答 1

0

您可以尝试使用页面实例注册客户端脚本。其他选项是在每个部分回发时生成唯一的脚本 ID。

选项 1(向页面实例注册客户端脚本):

ScriptManager.RegisterStartupScript(this.Page, Caller.GetType() , "navigate", "window.onload = function() {window.location.hash='#" + anchorTag + "';}", true);

选项 2(在每个部分回发时生成唯一的脚本 ID):

ScriptManager.RegisterStartupScript(Caller, Caller.GetType(), Guid.NewGuid(), "window.onload = function() {window.location.hash='#" + anchorTag + "';}", true); 
于 2012-12-06T21:42:47.693 回答