微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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对象为您的项目找到几个教程

原文地址:https://www.jb51.cc/aspnet/252091.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐