1

ASP.NET AJAXカスタムユーザーコントロールに、JSファイルの場合と同じようにCSSファイルの使用を「登録」させることが可能かどうか疑問に思いました。?

例:IScriptControlインターフェイスを実装すると、スクリプトマネージャーからGetScriptReferences()を呼び出すことができますが、CSSファイルにも同様の機能がありますか?

4

1 に答える 1

2

いいえ。

埋め込まれたリソースを使用する独自のメソッドを記述し、それらをページに書き込むための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());
于 2010-01-12T22:56:17.363 に答える