Pues fijate: si buscamos un poco en la ayuda de .NET, vemos que el parametro
e lleva como tipo un elemento de la clase DataGridItemEventArgs. En la ayuda dice que este parametro ofrece los datos para los eventos de itemcreated e itemdatabound.
Si seguimos viendo, esta clase (ItemType) se comparte entre datagrid y datalists, y existen diferentes tipos:
Código:
AlternatingItem An item in alternating (zero-based even-indexed) cells. It is data-bound.
EditItem An item in a list control currently in edit mode. It is data-bound.
Footer A footer for the list control. It is not data-bound.
Header A header for the list control. It is not data-bound.
Item An item in the list control. It is data-bound.
Pager A pager that displays the controls to navigate to different pages associated with the DataGrid control.
It is not data-bound.
SelectedItem A selected item in the list control. It is data-bound.
Separator A separator between items in a list control. It is not data-bound.
Siendo ese el caso, tenemos que identificar los valores que queremos desplegar, asi que eso no lo encontraremos ni cuando llena los datos del header, ni del footer, ni del pager, etc etc. De ahi viene esa comparacion: para determinar cuando los valores que se estan "bindeando" son los correspondientes a las filas.
Asi que, cuando identificas una fila que cumple con una condicion (si la columna tal del grid tiene tal valor), solo tendrias que especificar la propiedad de estilo de cada celda de esa fila (teniendo en cuenta que esa rutina se ejecuta para cada fila que va escribiendo en la pagina), de la forma:
si condicion
e.item.cells[0].backcolor = talcosa
e.item.cells[m].backcolor = talcosa