0

ASP.NETページを開発しています。現在、ページにAJAXはありません。さまざまなボタンクリックイベントの背後にあるコードで、以下のスクリプトを登録しています。スクリプトの目的は、ウィンドウを特定のアンカータグまでスクロールすることです。方法は次のとおりです。

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

私は2つの異なるアンカータグを持っていますが、それは有効で同じ方法で定義されています。ただし、1つは機能しており、もう1つは機能していません。この動作の原因を特定するために何を確認できますか?

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 に答える