从自定义服务器asp元素</style>发送<style>信息

时间:2012-11-01 19:38:11

标签: asp.net custom-server-controls

我想发送输出样式块中的CSS信息

      protected override void RenderContents(HtmlTextWriter output)
    {
      ...
      output.Write("<style> .... ");
    }

但是这个区块不能嵌套在div区块中。我必须把它放在头部。我该怎么办呢?还是有另一种方法?

2 个答案:

答案 0 :(得分:3)

this.Page.Header.Stylesheet.CreateStyleRule方法可让您为<head>添加样式。但是,您可以指定的CSS属性仅限于Style类支持的属性。 (如果需要其他属性,可以从Style派生自己的类。)

C#示例:

protected override void OnPreRender(EventArgs e)
{
    base.OnPreRender(e);

    // Create a Style object for the body of the page.
    Style bodyStyle = new Style();

    bodyStyle.ForeColor = System.Drawing.Color.Blue;
    bodyStyle.BackColor = System.Drawing.Color.LightGray;

    // Add the style rule named bodyStyle to the header 
    // of the current page. The rule is for the body HTML element.
    this.Page.Header.StyleSheet.CreateStyleRule(bodyStyle, null, "body");
}

答案 1 :(得分:2)

直接从System.Web.UI.Control派生并覆盖Render方法,而不是从(我假设的)System.Web.IO.WebControls.WebControl派生。