3

ページ全体のポストバック中に、グローバル スコープの配列変数をページのクライアント側 JavaScript に挿入する場合は、次を使用できます。

this.Page.ClientScript.RegisterArrayDeclaration("WorkCalendar", "\"" + date.ToShortDateString() + "\"");

ページでクライアント側の JavaScript 配列を宣言して入力します。素敵でシンプル。

しかし、UpdatePanel からの非同期ポストバックから同じことをしたいと考えています。

これまでに把握できる最も近い方法は、var 宣言のみを含む .js ファイルを作成し、非同期ポストバック中にファイルを更新してから、a を使用しScriptManagerProxy.Scripts.Addて .js ファイルをページのグローバル スコープに追加することです。

もっと簡単なものはありますか?それは間違っていますか?

4

3 に答える 3

3

静的メソッドSystem.Web.UI.ScriptManager.AddStartupScript()を使用します

スクリプトは、すべての完全および部分的なポストバックで実行されます。

于 2008-09-19T00:26:09.590 に答える
2

サムは正しいです。ScriptManager.RegisterStartupScriptは、関数の正しい名前です。すべてのページの完全および部分的な更新で実行されます。

于 2010-04-26T12:00:59.393 に答える
0

更新パネル内の非表示のラベルを更新して、好きな JavaScript を書き出すこともできます。更新パネルを使用する代わりに、Web サービスまたはページ メソッドを使用して必要なデータをフェッチすることをお勧めします。

例: myLabel.Text = "...."; ...これにロジックを入れるか、[WebMethod]をパブリック静的ページメソッドに追加してデータを直接返すことができます。

于 2008-09-18T18:07:09.797 に答える