ASP.NET AJAXカスタムユーザーコントロールに、JSファイルの場合と同じようにCSSファイルの使用を「登録」させることが可能かどうか疑問に思いました。?
例:IScriptControlインターフェイスを実装すると、スクリプトマネージャーからGetScriptReferences()を呼び出すことができますが、CSSファイルにも同様の機能がありますか?
ASP.NET AJAXカスタムユーザーコントロールに、JSファイルの場合と同じようにCSSファイルの使用を「登録」させることが可能かどうか疑問に思いました。?
例:IScriptControlインターフェイスを実装すると、スクリプトマネージャーからGetScriptReferences()を呼び出すことができますが、CSSファイルにも同様の機能がありますか?
いいえ。
埋め込まれたリソースを使用する独自のメソッドを記述し、それらをページに書き込むためのhtmlを生成することができます。
ただし、ベストプラクティスのアプローチとして、これはお勧めしません。スタイルとマークアップを明確に分離する必要があります。スタイルシートに依存するカスタムコントロールを作成する場合は、コントロールと一緒にデフォルトのcssファイルを提供することをお勧めします。
編集(コメントの質問に答えるために)
このコードを実行して、CSSファイルへの参照をページに追加できます(実行時)。RegisterClientScriptBlockメソッドを使用しているため、挿入の複製を管理できることに注意してください。メソッドのリンクからの抜粋を次に示します。
クライアントスクリプトは、そのキーとタイプによって一意に識別されます。同じキーとタイプのスクリプトは重複と見なされます。このページに登録できるのは、特定のタイプとキーのペアを持つ1つのスクリプトのみです。すでに登録されているスクリプトを登録しようとしても、スクリプトの複製は作成されません。
StringBuilder sb = new StringBuilder();
sb.Append(@"<link rel=""stylesheet"" type=""text/css"" href=""");
sb.Append(this.Page.ClientScript.GetWebResourceUrl(this.GetType(), resourceName));
sb.Append(@""" />");
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "MyCSS", sb.ToString());