我正在尝试在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>");
当然,现在我将把这个字符串放在配置文件中的某个地方,这样我就不必重新编译项目来更改电子邮件的样式,但这就是我要做的.
哇!所有字幕的样式都相同…