ScriptManager.RegisterStartupScriptコードが機能しない-なぜですか?

asp.net javascript scriptmanager
ScriptManager.RegisterStartupScriptコードが機能しない-なぜですか?

過去にこのようなコードを使用して、asp.net Webページにアラートメッセージを正常にポップアップ表示しました。 今では機能していません。 理由がわかりません。

ScriptManager.RegisterStartupScript(this, typeof(Page), UniqueID,
     "alert('This pops up')", true);

何か案は?

  19  8


ベストアンサー

私の頭の上から:

  • スクリプトをバインドするには、「typeof(Page)」ではなく「GetType()」を使用します
    基本クラスではなく実際のページクラスに、

  • `Page.UniqueID`の代わりにキー定数を渡します。
    名前付きコントロールによって使用されることになっているため、意味があります。

  • Javascriptステートメントをセミコロンで終了し、

  • `PreRender`フェーズでスクリプトを登録します:

” ” ‘

protected void Page_PreRender(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this, GetType(), "YourUniqueScriptKey",
        "alert('This pops up');", true);
}

40


このコードを試してください…​

ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "script", "alert('Hi');", true);

ここで、「UpdatePanel1」はページの「Updatepanel」の「id」です

18


スクリプトを引き起こすコントロールがupdatepanel内にある場合、最初の引数にupdatepanel idを配置する必要があります

ScriptManager.RegisterStartupScript(UpdatePanel3, this.GetType(), UpdatePanel3.UniqueID, "showError();", true);

1


同様の問題に遭遇しました。 ただし、この問題は、リクエストを取り込むためのページの設計方法が原因で発生しました。 すべての.jsファイルをページに最後に適用するものとして配置したため、ドキュメントの最後にあります。 .jsファイルには、すべての機能が含まれています。 スクリプトマネージャは、この関数を呼び出すことができるように、ロード時に呼び出される関数とともに既に存在するjsファイルを必要とするようです。 他の人に役立つことを願っています。

0


タイトルとURLをコピーしました