当前位置:  开发笔记 > 后端 > 正文

在RowDataBound上添加CSS类

如何解决《在RowDataBound上添加CSS类》经验,为你挑选了1个好方法。

我正在尝试将一个CSS类附加到RowDataBound上的一行.我正在使用针对GridView的交替css类属性,所以我假设这适用于RowDataBound.如果以编程方式将CSS类分配给RowDataBound事件中行的CssClass属性,则即使附加CSS类,不会应用交替行样式css .

这是我得到的:

Protected Sub gvGeneral_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvGeneral.RowDataBound
    If e.Row.RowType = DataControlRowType.DataRow Then
      If previousExpenseType <> e.Row.Cells(2).Text And previousExpenseType.Length > 0 Then
        e.Row.CssClass += "bottom-border"
      End If

      previousExpenseType = e.Row.Cells(2).Text
    End If
  End Sub

previousExpenseType只是一个我正在做比较的字符串.如果费用类型更改,那么我希望将边框应用于元素的底部.

任何想法如何解决这个问题?在RowDataBound之后,似乎有一个事件将交替的行样式css类应用于该行.



1> bba..:

在你的RowDataBound事件处理程序中尝试这个...

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    GridView grid = GridView1;
    GridViewRow row = e.Row;
    if (row.RowType == DataControlRowType.DataRow)
    {
        bool isAlternating = row.RowState == DataControlRowState.Alternate;

        List classes = new List();

        /*  Setting the CssClass of a row overwrites any CssClass declared in the 
         *  markup, so lets save the value that is in the markup and add to it.
         */
        if (isAlternating) { classes.Add(grid.AlternatingRowStyle.CssClass); }
        else { classes.Add(grid.RowStyle.CssClass); }

        //
        //logic for adding other css classes to the row...
        //

        //set the CssClass property of the row to the combined css classes value
        row.CssClass = string.Join(" ", classes.ToArray());

        //
        //more row processing...
        //
    }
}

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有