【发布时间】:2015-08-04 23:07:23
【问题描述】:
我需要根据数据表中的值突出显示 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 中突出显示这些值的行。
【问题讨论】:
-
您遇到了什么问题?什么不起作用?
-
@j.f. - 我正在努力检查 gridview 中的数据表值。我突出显示了具有静态值且大于或小于的行。但这对我来说有点棘手。
-
首先,您的代码会不必要地浪费太多时间。因为 1.
DataTable dt = DataRepository.highlightRow();在每一行上都被调用。 2. foreach 和 for 循环在每一行上运行。 -
你能编辑你的问题并说出你的数据表的内容是什么吗?还有你想和什么比较?
标签: c# asp.net gridview datatable