I'm trying to style the caption of a ASP.Net GridView in a C# file. here is my method that returns a styled 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;
}
By default the Caption is not styled (it's just black text on top of the gridview)
Does anyone know how I can style the Caption Navy with white text? (similar to the way I have styled the header row maybe?)
EDIT: I've done this before by using CSS, but I don't have the liberty of doing that as, this is a program that generates gridviews to send in an email. There is no aspx file or skin...
So after talking with another developer, we came up with this. (BTW I'm kicking myself because it is so simple)
To write out the gridview for sending in the email, I was using an htmlwriter like so:
var sbuilder = new StringBuilder();
var swriter = new StringWriter(sbuilder);
var htmlWriter = new HtmlTextWriter(swriter);
//...
myGridview.RenderControl(htmlwriter);
mymailMessage.Body = sbuilder.ToString();
All I had to do was add the styles before using the htmlwriter to render the controls.
So I added this after creating the 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>");
Now of course I will put this string in a config file somewhere, so I don't have to recompile the project to change the style of the email, but this is all I needed to do.
Wala! all captions are styled the same...