Стилизация Gridview "Заголовок" из класса C # - PullRequest
3 голосов
/ 04 октября 2010

Я пытаюсь стилизовать заголовок ASP.Net GridView в файле C #.Вот мой метод, который возвращает стиль 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;
}

По умолчанию заголовок не имеет стиля (это просто черный текст поверх вида сетки)

Кто-нибудь знает, как я могу стильПодпись ВМС с белым текстом?(похоже на то, как я стилизовал строку заголовка, может быть?)

РЕДАКТИРОВАТЬ: Я делал это раньше с помощью CSS, но у меня нет свободы делать это какэто программа, которая генерирует сеточные представления для отправки по электронной почте.Нет файла aspx или скина ...

Ответы [ 2 ]

3 голосов
/ 05 октября 2010

Итак, поговорив с другим разработчиком, мы придумали это.(КСТАТИ, я бью себя, потому что это так просто)

Чтобы выписать сетку для отправки по электронной почте, я использовал 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>");

Теперь, конечно, я помещу эту строку в файл конфигурациигде-то, так что мне не нужно перекомпилировать проект, чтобы изменить стиль письма, но это все, что мне нужно было сделать.

Wala!все заголовки оформлены одинаково ...

1 голос
/ 05 октября 2010

если вы используете gview.HeaderRow вместо gview.HeaderStyle, то это будет работать. Попробуйте:

gview.HeaderRow.ForeColor = Drawing.Color.White

Это добавит встроенный стиль в строку таблицы (tr), чтобы его можно было использовать в электронной почте в формате HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...