очень просто
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRowView drv = e.Row.DataItem as DataRowView;
if (drv["ShouldHighlight"].ToString().ToLower() == "true")
e.Row.CssClass = "highlighted";
}
}
приведенный выше код работает, если вы используете DataTable в качестве источника данных
изменить на:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
myClass drv = (myClass)e.Row.DataItem;
if (drv.ShouldHighlight)
e.Row.CssClass = "highlighted";
}
}
только для примера выше при использовании шаблонов:
public class myClass
{
public Boolean ShouldHighlight
{ get; set; }
}
если вы работаете с Generics (Список, Словарь и т. Д.)
имейте в виду:
e.Row.dataItem
всегда возвращает весь объект, которым вы заполняете строку, поэтому отсюда легко манипулировать внешним видом данных на веб-странице.
вам следует использовать событие RowDataBound, которое сработает после того, как данные прикреплены к объекту строки, но еще не записали HTML-код на странице, таким образом вы можете проверить значение ShouldHighlight (я преобразовал в строку, потому что я не если вы знаете тип, вы можете изменить его, если знаете, что это логическое значение).
этот код работает намного быстрее, чем код megakemp, потому что вы не создаете объект List и не заполняете весь источник данных для каждой строки ...
P.S. посмотрите на этот сайт , вы можете найти несколько учебных пособий для вашего проекта, используя объект GridView