これは全く同じ質問です。回答はthisと同じです。ScriptManagerが複数のスクリプトをページに追加する(重複して)
(編集)注:this未回答の投稿は、UpdatePanelのusercontrolのScriptManager.RegisterClientScriptBlockによって<head>
に追加される余分なスクリプトが重複を引き起こしているという動作を正確に説明しています。 C#.NET 4.0。ページは次のように構成されています。
MasterPage
Page
UserControl1 (ascx) - loaded in code by Page
UpdatePanel
UserControl2 (ascx) - loaded in code by UserControl1
初めて本文が期待通りに追加されました。 UserControl2をのOnInitで簡単にコード、:
ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "myscript", script, true);
私も、私は上に複製同じスクリプトキーをしたくないので、本当に意味がありません「この」の代わりにページを参照して試してみましたユーザーコントロールがページに複数回読み込まれても、それは動作しませんでした。
部分的なポストバックの後、スクリプトは再び追加されますが、本体のページではなく<head>
に興味があり、興味深いことに、asp.netが通常追加する通常の//<![CDATA[...//]]>
ラッパーが欠けています。
UserControl1によって追加された別のスクリプトは、部分的なポストバック後もまったく同じ方法で複製されます。
これはなぜ起こっているのですか?
どのようにスクリプトを登録しますか?ページ全体が生成されるときのみ? – akonsu
あなたはリンクされている質問には答えがあるようです... – Chris
@Chris申し訳ありませんが、あなたは正しいですが、それは私の問題ではない、おそらくそれは受け入れられていませんでした。私は同じタイプとキーを使用しています。私は他の人がこの問題を他のところで尋ねてきましたが、説明や答えは見つけませんでした。 –