0

私は多くのJavaScriptとCSSを使用するASP.NETカスタムコントロールに取り組んでいます。メンテナンスの目的で、ファイルを分離しておく方が簡単です。名前空間を宣言する前に、次のコードがあります。

[assembly: WebResource("MyNamespace.Styles.colorbox.css", "text/css", PerformSubstitution = true)]
[assembly: WebResource("MyNamespace.Styles.pagination.css", "text/css")]

CSSファイルは明らかにStylesと呼ばれるサブフォルダーにあります。次のコードを使用して、ページのOnInitにそれらを登録しようとしています。

// Register colorbox css
cssColorbox = "<link href=\"" + Page.ClientScript.GetWebResourceUrl(typeof(DoctypeSelectorControl), "MyNamespace.Styles.colorbox.css") + "\" type=\"text/css\" rel=\"stylesheet\" />";
            this.Page.ClientScript.RegisterClientScriptBlock(typeof(DoctypeSelectorControl), "cssFile", cssColorbox, false);

// Register pagination css
cssPagination = "<link href=\"" + Page.ClientScript.GetWebResourceUrl(typeof(DoctypeSelectorControl), "MyNamespace.Styles.pagination.css") + "\" type=\"text/css\" rel=\"stylesheet\" />";
            this.Page.ClientScript.RegisterClientScriptBlock(typeof(DoctypeSelectorControl), "cssFile", cssPagination, false);

最初のものは完全に読み込まれますが、2番目のリンク(pagination.css)も表示されません。これがこの方法で1つのファイルに制限されているのか、それともこれを処理するためのより良い方法があるのか​​はわかりませんでした。

参考:DoctypeSelectorControlは、明確でない場合のクラスの名前です。

ご協力いただきありがとうございます!

4

2 に答える 2

1

CSSを共有コードライブラリに移動する必要があるプロジェクトで、同様のことを行いました。複数のファイルを挿入することができました。以下のコードは、私が使用したものの例です。CSSファイルを埋め込みリソースとして指定してください。

        string cssColorbox = Page.ClientScript.GetWebResourceUrl(this.GetType(),
            "MyNamespace.Styles.colorbox.css");

        string cssPagination = Page.ClientScript.GetWebResourceUrl(this.GetType(),
          "MyNamespace.Styles.pagination.css");


        HtmlGenericControl colorboxCss = new HtmlGenericControl("link");
        colorboxCss.Attributes.Add("href", cssColorbox);
        colorboxCss.Attributes.Add("type", "text/css");
        colorboxCss.Attributes.Add("rel", "stylesheet");


        HtmlGenericControl paginationCss = new HtmlGenericControl("link");
        paginationCss.Attributes.Add("href", cssPagination);
        paginationCss.Attributes.Add("type", "text/css");
        paginationCss.Attributes.Add("rel", "stylesheet");


        Page.Header.Controls.Add(colorboxCss);
        Page.Header.Controls.Add(paginationCss);
于 2011-04-30T01:44:12.603 に答える
1

元の投稿での実際の問題は、同じキーを使用していたことだと思います。奇妙なことに、しかし、私は2番目が最初を上書きすることを期待していました。

于 2013-03-29T13:06:03.703 に答える