Я делаю нечто подобное с RowDataBound:
if (e.Row.RowType == DataControlRowType.DataRow)
{
// Check the XXXX column - if empty, the YYYY needs highlighting!
if (e.Row.Cells[6].Text == " ")
{
e.Row.CssClass = "highlightRow"; // ...so highlight it
}
}
Один из способов проверить, что вы делаете правильно, - это контролировать вывод html через браузер ... что-то вроде Firebug действительно помогает.
Вот несколько примеров CSS, где мы назначаем CssClass 'dataGrid' для Grid:
/* Used to highlight rows */
table.dataGrid tr.highlightRow td
{
background-color: #FF6666;
border-bottom: 1px solid #C0C0FF;
}
Обновление: Подключение всего этого: я использую автоподключение на странице aspx. Объявление вашей страницы выглядит примерно так:
<%@ Page Language="C#" MasterPageFile="~/XXXXXX.master" AutoEventWireup="true" CodeBehind="YYYY.aspx.cs" Inherits="ZZZ.ZZZ.AAAAAA" Title="View Blah" %>
Этот параметр на странице позволяет использовать пользовательский интерфейс для подключения событий. Щелкните по сетке, выберите свойства, щелкните значок молнии и под событием RowDataBound выберите свой метод. Все, что происходит за кулисами, это добавляет атрибут в DataGridView, таким образом:
<asp:GridView ID="uiActionGridView" runat="server" AllowSorting="True" AutoGenerateColumns="False"
OnRowDataBound="uiActionGridView_RowDataBound" OnDataBound="uiActionGridView_DataBound">
- это показывает, что два события подключены, события DataBound и RowDataBound.
Это то, что я делаю с использованием VS2005, и все это, кажется, «просто работает». Единственное, что, как я думаю, вы испытываете, - это то, что вы вручную связываете событие после , когда произошла привязка.