我需要根据数据值更改网格视图单元格的颜色。我可以很容易地使用Gridviews RowDataBound事件中的数据行视图和if语句(见下文),但是我需要对30列执行此操作,这将是相当冗长的,并且如果业务规则发生变化,更改将是一件痛苦的事情。如何将以下代码封装到一个可重用的方法中,以便调用该方法并传入数据列和单元格索引?
protected void gv1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.DataItem != null)
{
DataRowView drv = (DataRowView)e.Row.DataItem;
int A = Int32.Parse(drv["A"].ToString());
if (A <= 74)
{
e.Row.Cells[2].BackColor = System.Drawing.Color.Red;
}
}
}发布于 2012-01-13 01:36:09
public void SetColor(DataGridViewRow row, string columnName, int cellIndex)
{
var data = (GridViewRow)row.DataItem;
int number = Convert.ToInt32(data[columnName]);
if (number > 74) return;
row.Cells[cellIndex].BackColor = Color.Red;
}
protected void gv1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType != DataRowType.DataRow) return;
SetColor(e, "A", 2);
}https://stackoverflow.com/questions/8839395
复制相似问题