初めてのユーザー コントロールを構築しています。コントロールに必要な JavaScript をアセンブリにパッケージ化して、エンド ユーザーが依存関係を含めることを心配する必要がないようにしたいと考えています。Scott Mitchell のチュートリアル ( http://aspnet.4guysfromrolla.com/articles/080906-1.aspx ) に従いましたが、正しく動作しないようです。
これが私がこれまでに行ったことです:
次の関数を含む CollapsiblePanel.js ファイルを作成しました。
function TogglePanel(panelId) {
// $(panelId + ' .PanelContent').toggle();
alert(panelId);
}
プロパティ パネルで、ビルド アクションを「埋め込みリソース」に設定しました。このファイルは、クラス ライブラリ プロジェクト内の scripts/ ディレクトリにあります。私のプロジェクトのルート名前空間は webstation.WebControls なので、私の理解が正しければ、「webstation.WebControls.scripts.CollapsiblePanel.js」を介して js ファイルを参照する必要があります。
カスタム コントロールのクラス宣言の直前に次の行を追加しました。
<Assembly: WebResource("webstation.WebControls.scripts.CollapsiblePanel.js", "text/javascript")>
カスタム コントロールの OnPreRender イベントをオーバーライドし、以下を追加しました。
Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
Page.ClientScript.RegisterClientScriptInclude("wsWebControlsCollapsiblePanel", _
Page.ClientScript.GetWebResourceUrl(Me.GetType(), "webstation.WebControls.scripts.CollapsiblePanel.js"))
MyBase.OnPreRender(e)
End Sub
コントロールをレンダリングすると、「TogglePanel(this.id);」という機能を持つボタンがあります。onclickイベントで、ボタンをクリックすると、関数が定義されていないというエラーが表示されます。埋め込まれた JavaScript の使用を開始する方法を誰かが知っている場合は、本当に助けていただければ幸いです。
マイク