如何为gridview的行上色,如果它与两个数据表合并



想要为合并在单个数据表中并绑定到网格视图的两个不同颜色的数据表上色。我试过了,但是所有行的颜色都是一样的。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        string setrowcolor = string.Empty;
        if (dt1.Rows.Count != 0)
        {
            foreach (DataRow row in dt1.Rows)
            {
                setrowcolor = "nearbyfit";
            }
            e.Row.CssClass = setrowcolor;
        }
        if (dt.Rows.Count != 0)
        {
            foreach (DataRow row in dt.Rows)
            {
                setrowcolor = "perfectfit";
            }
            e.Row.CssClass = setrowcolor;
        }  
    }
}

试试这个代码:-

我假设你像这样合并你的DataTable:-

dt.Merge(dt1);

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow) 
    {
        try
        {                
            DataRow dr1 = dt1.Rows.Cast<DataRow>().Where(i => i["Name"].ToString() == e.Row.Cells[0].Text).FirstOrDefault();                
            if (dr1 != null)
                e.Row.BackColor = System.Drawing.Color.Gray;
            else
                e.Row.BackColor = System.Drawing.Color.Teal;
        }
        catch
        { }
    }
}

您可以将Name替换为DataTable的第一列

希望这对你有帮助。

最新更新