как раскрасить строки gridview, если он объединен с двумя таблицами данных?

#asp.net #gridview

#asp.net #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;
        }  
    }
}
  

Ответ №1:

Попробуйте этот код:-

я предполагаю, что вы объединяете свои 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

Прыгайте, это вам поможет.