私はASP.Netサーバーコントロールを作成しました。これを "WebGrid"と呼ぶことができます。 WebGridコントロールには、ホストされているページのScriptManagerに登録されている埋め込みJavaScriptリソースがあります。動的に追加されたサーバーコントロールにjavascriptリソースを登録
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
ClientScriptManager scriptManager = this.Page.ClientScript;
scriptManager.RegisterClientScriptResource(typeof(WebGrid), "Atl.Core.Resources.Scripts.WebGrid.js");
}
私もWebGrid.jsファイルは、「埋め込まれたリソース」へのファイルのビルドアクションプロパティを変更することにより、埋め込まれたリソースであることを確認しました、そのようにプロジェクトのAssemblyInfo.csにリソースを追加しました:コントロールがaspxページのマークアップで宣言されているとき
[assembly: WebResource("Atl.Core.Resources.Scripts.WebGrid.js", "text/js")]
さて、JavaScriptのリソースは、のScriptManagerに登録し、すべてが正常に動作しています。しかし、私はコントロールをページのControlCollectionに動的にボタンをクリックしてクリックしてJavaScriptをクリックして登録されていないコントロールを追加し、そのようなjavascript関数を見つけることができないと文句を言います。
EDITは...ボタンと異なる UpdatePanelsに配置されているWebGridの両方に注意してください。私は(Differences between ScriptManager and ClientScript when used to execute JS?)を参照してくださいにScriptManager対ClientScriptを使用していますので、問題のように見えることです。では、WebGridのスクリプトをPageのScriptManagerに登録するにはどうすればよいですか?