asp.net – 选择性地将CSS应用于gridview中的一行

我正在寻找一种方法来根据数据绑定项的属性选择性地将CSS类应用于GridView中的各个行。

例如。:

GridView的数据源是SummaryItems的一个通用列表,而SummaryItem具有一个属性ShouldHighlight。当ShouldHighlight == true时,应将相关行的CSS设置为突出显示

有任何想法吗?

解决方法

好简单
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作为DataSource,上述代码将起作用

改成:

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; }
}

如果您正在使用泛型(列表,字典等)

记住:

e.Row.dataItem

总是返回您填充行的整个对象,因此从这里很容易操纵网页中的数据的外观。

您应该使用RowDataBound事件,该数据将在数据附加到行对象之后触发,但尚未在页面中编写HTML代码,以这种方式可以检查ShouldHighlight值(我转换为字符串因为我不知道该类型,如果你知道它是一个布尔值,你可以改变它)。

这个代码比megakemp代码运行得更快,因为你不是创建一个List对象,并且填充了每一行的整个数据源…

附:使用look at this website,您可以使用GridView对象为您的项目找到几个教程

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....