4

aspx ページに実装されている js 関数を .cs クラスから呼び出そうとしています。しかし、ScriptManager は .cs クラスに存在しないようです。基本的に、.cs ファイルは、プロジェクトで使用している dll の一部です。dll にある .cs ファイルから、aspx ページに実装されている js 関数を呼び出す必要があります。

js 関数は aspx ページから正常に呼び出されますが、.cs ファイルで同じコードを試すと、

保護レベルが原因で、ScriptManager にアクセスできません。

ここに私が試しているコードがあります

protected void MyMethod()
{
   ScriptManager.RegisterStartupScript(this, this.GetType(), "key", "jsfunction();", true);
}

同じコードが aspx ページでは正常に実行されるが、.cs クラスからは実行されない理由はありますか?

4

2 に答える 2

1

さて、上記の問題を克服するために、このコードで試してみました

System.Web.UI.ScriptManager.RegisterStartupScript(this, this.GetType(), "key", "jsfunction();", true);

ScriptManager で完全な名前空間を使用していることに注意してください。

于 2012-12-28T16:51:47.423 に答える
1

ScriptManager.RegisterStartupScript は、ページまたはコントロールを最初の引数として受け入れます。現在の Page を cs メソッドに渡すようにしてください

protected void MyMethod(Page page)
{
   ScriptManager.RegisterStartupScript(page, typeof(UpdatePanel), new Guid().ToString() , "jsfunction();", true);
}

そして、次を使用して aspx.cs ページから呼び出します。

MyMethod(this.Page);
于 2012-12-26T10:17:16.247 に答える