使用MasterPage(母版页)的ASP.NET Content(内容)页面添加CSS样式

来源:互联网 发布:好的c语言集成开发环境 编辑:程序博客网 时间:2024/05/17 17:55

为使用MasterASP.NET Content页面添加CSS样式使用了MasterASP.NET Content页面无法直接引用外部样式或内嵌样式,因为CSS样式必须出现在HTMLhead标签内,而Content页面自身是不能包含head的。不过通过编程,很容易做到这一点,以下就是解决方案(也可以用相同的手段来添加其他HTML元素)。


先定义以下两个方法:

内嵌样式支持

protectedvoid AddInlineStyle(string style)

{

   HtmlGenericControl node = new HtmlGenericControl("style");

   node.Attributes.Add("type", "text/css");

   node.InnerText = style;

   Page.Header.Controls.Add(node);

}

外部样式支持

protectedvoid AddLinkedStyle(string url)

{

  HtmlLink link = new HtmlLink();

  link.Attributes.Add("type", "text/css");

  link.Attributes.Add("rel", "stylesheet");

  link.Attributes.Add("href", url);

  Page.Header.Controls.Add(link);

}

Page_Load方法中,使用上面两个方法来添加样式:

添加内嵌样式

AddInlineStyle("body { padding:10px; margin:5px 0; }");

引用外部样式

AddLinkedStyle("/styles/layout.css");

简单而实用。HtmlGenericControl是相当有用的类,在ASP.NET中可以用来定制很多输出行为,实在是应该多加利用的好东东。


来至http://westlife063.blog.163.com/blog/static/129942096201042514651713/