在Custom Control中添加CSS

在自定义ASP.NET server 控件中,怎么添加CSS资源文件或添加CSS的style text呢?

一、先来看看怎么添加内嵌的CSS文件

1.  把CSS文件以内嵌资源的形式添加到项目中并定义WebResource,本文主题不是这个,所以这里不会叙述怎么添加。

2.  在override的OnPreRender或者OnInit事件中,把HtmlLink指向CSS文件并添加到页面的Header中, 添加ID然后判断是否已经输出CSS,防止重复输出。

if (this.Page.Header.FindControl("timePickerCss") == null)
{
      string cssUrl = this.Page.ClientScript.GetWebResourceUrl(this.GetType(), "JY.Lib.Extension.CustomControls.Resource.Css.timePicker.css");
      HtmlLink cssLink = new HtmlLink();
      cssLink.Href = cssUrl;
      cssLink.Attributes.Add("rel", "stylesheet");
      cssLink.Attributes.Add("type", "text/css");
      cssLink.ID = "timePickerCss";
      this.Page.Header.Controls.Add(cssLink);
}

二、然后我们再看看怎么直接添加CSS

HtmlGenericControl style = (HtmlGenericControl)this.Page.Header.FindControl("watermarkCssStyle");
     if (style == null)
     {
           style = new HtmlGenericControl("style");
           style.Attributes.Add("type", "text/css");
           style.ID = "watermarkCssStyle";
           style.InnerText = ".watermark {color: #999 !important; }";

           this.Page.Header.Controls.Add(style);
       }

三、还有一种方法, 下面这种除了CSS会输出到body标签下而不是header标签之外,还是挺好的

string css = "";
this.Page.ClientScript.RegisterClientScriptBlock(typeof(WatermarkTextBox), "watermarkCssStyle", css, false);

 

原创文章,转载请注明: 转载自闲云博客

本文链接地址: 在Custom Control中添加CSS

发表评论

电子邮件地址不会被公开。 必填项已用*标注