根据数据表值突出显示gridview行
本文关键字:显示 gridview 数据表 | 更新日期: 2023-09-27 17:50:36
我需要根据datatable中的值突出显示gridview行。我已经高亮了一些值,如果任何特定的单元格值满足某些条件,那么我可以使用此代码高亮显示。
if(int.Parse(DataBinder.Eval(e.Row.DataItem,"Risk").ToString()) > 100)
{
e.Row.BackColor = Color.FromName("#FAF7DA");
}
现在我的问题是,在我的rowdatabound事件中,我想检查数据表中的值,我需要突出显示gridview中的值。
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataTable dt = DataRepository.highlightRow();
string[] strInactive = dt.AsEnumerable().Select(row => row.Field<string>("product_id")).ToArray();
foreach (GridViewRow row in gvProducts.Rows)
{
for (int i = 0; i < gvProducts.Columns.Count; i++)
{
if (gvProducts.Rows[0].Cells[0].Text.Contains("how to pass array values"))
{
e.Row.BackColor = System.Drawing.Color.Red;
}
}
}
}
}
为例:这里,数据表将只返回一个列值,如10,20,20。然后我需要在gridview中突出显示这些值的行。
您应该能够检查e.Row.DataItem
的值是否符合您的标准
您可以在RowDataBound
事件中执行以下操作:
if (e.Row.RowType == DataControlRowType.DataRow) {
DataRowView drv = (DataRowView) e.Row.DataItem;
if( drv("Risk") == <some condition> ) {
e.Row.BackColor = Drawing.Color.Black // :)
}
}
也许这就是你正在寻找的:
private const System.Drawing.Color HIGHLIGHT = System.Drawing.Color.Yellow;
private const System.Drawing.Color NORMAL = System.Drawing.Color.White;
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataTable dt = DataRepository.highlightRow();
string[] strInactive = dt.AsEnumerable().Select(row => row.Field<string>("product_id")).ToArray();
foreach (var value in strInactive)
{
e.Row.BackColor = (e.Row.Cells[0].Text == value) ? HIGHLIGHT : NORMAL;
}
}
}
我不知道你的DataTable里面有什么,所以我不知道你想测试什么