从C#类样式化Gridview“标题”

我正在尝试在C#文件中设置ASP.Net GridView的标题样式.这是我的返回样式化GridView的方法:

private GridView setupGridView(string caption)
{
 var gview = new GridView()
 {
  BackColor = Color.White,
  BorderColor = Color.Gray,
  BorderStyle = BorderStyle.Solid,
  BorderWidth = new Unit(1, UnitType.Pixel),
  Caption = caption,
  ForeColor = Color.Black,
 };
 gview.HeaderStyle.BackColor = Color.Navy;
 gview.HeaderStyle.ForeColor = Color.White;
 gview.HeaderStyle.BorderColor = Color.DarkGray;
 gview.HeaderStyle.BorderWidth = new Unit(1, UnitType.Pixel);
 gview.HeaderStyle.BorderStyle = BorderStyle.Solid;
 gview.AlternatingRowStyle.BackColor = Color.LightGray;
 return gview;
}

默认情况下,标题未设置样式(在gridview顶部只是黑色文本)

有谁知道我可以用白色文字为Caption Navy样式吗? (类似于我设置标题行样式的方式?)

编辑:我之前已经通过使用CSS做到了这一点,但是我没有这样做的*,因为,这是一个生成gridviews以发送电子邮件的程序.没有aspx文件或皮肤…

解决方法:

因此,在与另一位开发人员交谈之后,我们想到了这一点. (顺便说一句,我踢自己,因为它是如此简单)

为了写出发送电子邮件的gridview,我使用了类似这样的htmlwriter:

var sbuilder = new StringBuilder();
var swriter = new StringWriter(sbuilder);
var htmlWriter = new HtmlTextWriter(swriter);
//...
myGridview.RenderControl(htmlwriter);
mymailMessage.Body = sbuilder.ToString();

我要做的就是在使用htmlwriter呈现控件之前添加样式.

所以我在创建htmlwriter之后添加了它

htmlWriter.Write("<style type=\"text/css\">caption { font-family: Arial, sans-serif; color: white; font-size: 14px; font-weight: bold; padding: 3px 100px 3px 7px; text-align: left; white-space: nowrap; text-align: center; background-color: navy;}</style>");

当然,现在我将把这个字符串放在配置文件中的某个地方,这样我就不必重新编译项目来更改电子邮件的样式,但这就是我要做的.

哇!所有字幕的样式都相同…

上一篇:模拟搭建Web项目的真实运行环境(四)


下一篇:带有自定义DefaultStyleKey的自定义窗口丢失FocusVisualStyle