开发者

Linking a CSS Stylesheet with an ASP.NET Custom Control

I'm developing a custom co开发者_运维技巧ntrol which is a composition of tables and buttons. I also have an external CSS stylesheet that defines the styles for these elements.

The Control's type is CompositeControl, under namespace MyControls and the definition of the class is in a class file CompositeControl.cs and the dll file generated is named MyControls.dll

The stylesheet is called styles.css and is in the same folder as CompositeControl.cs

For each control (Button, TableCell, etc.), I have specified the CssClass property.

When I add this control to my ASP.NET webpage and check the HTML source when run at localhost, I see all the control tags have the class attribute correctly set, but the source doesn't include the <link> tag which is necessary for including an external stylesheet.

Could someone tell me what else I need to do to make this work? Thanks.


External source files are not included to the page automatically. You should register them manually within your control to your page :

HtmlLink cssSource = new HtmlLink();
cssSource.Href = Page.ClientScript.GetWebResourceUrl(this.GetType(), "styles.css");
cssSource.Attributes["rel"] = "stylesheet";
cssSource.Attributes["type"] = "text/css";
Page.Header.Controls.Add(cssSource);

Also try to use ClientScriptManager.GetWebResourceUrl to get location of your embedded resource. Here is an example of referencing an embedded resource.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜