ASP.NET GridView控件中每3行都有粗网格线?

时间:2011-01-13 18:14:48

标签: asp.net css

我想在网格中有3行,然后是一条较粗的线,将第3行与第4行分开,然后是3行,然后是将第6行与第7行分开的较粗的线等等。

这样做的最佳方式是什么?

Row 1
Row 2
Row 3
-------------
Row 4
Row 5
Row 6
-------------

3 个答案:

答案 0 :(得分:5)

这样的事情应该有效。

Codebehind:

private int RowCount { get; set; }

protected void myGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    switch(e.Row.RowType)
    {
        case DataControLRowType.Header:
            {
                RowCount = 0;
            }
            break;
        case DataControlRowType.DataRow:
            {
                RowCount += 1;
                if (RowCount == 3)
                {
                    e.Row.CssClass = "BorderRow";
                    RowCount = 0;
                }
            }
            break;
    }
}

的CSS:

tr.BorderRow td { border-bottom: 3px solid #000000; }

答案 1 :(得分:2)

根据chprpipr的回答,这是一个使用modulo和e.Row.RowIndex的更紧凑的解决方案:

if (e.Row.RowType = DataControlRowType.DataRow)
{
    if ((e.Row.RowIndex + 1) % 3 == 0)
    {
        e.Row.CssClass = "BorderRow";
    }
}

替换'%3'与'%5'例如,您将每5行而不是3行添加BorderRow CSS类。

答案 2 :(得分:1)

这是一个jQuery示例:

$(document).ready(function() {
    $("table.MarkRows tr:nth-child(3)").addClass("BorderRow");
});

假设您拥有我在.NET解决方案中概述的CSS规则,每个<table class="MarkRows"><asp:GridView CssClass="MarkRows" />都应该有效。