#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
Прыгайте, это вам поможет.