我有一个通过存储过程动态填充的网格视图
我想问一下如何在填充gridview时循环遍历每一行并设置column17的值的颜色? 例如,对于1到20之间的值范围,我希望颜色为绿色,21-40之间的值为橙色,41 - 60为红色?
我填写gridview的代码:
using (SqlCommand cmd = new SqlCommand(spretrieve, conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@param1", SqlDbType.VarChar).Value = DATE;
cmd.Parameters.Add("@param2", SqlDbType.VarChar).Value = Key;
string query = cmd.CommandText;
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
Gridview1.DataSource = ds.Tables[0];
Gridview1.DataBind();
答案 0 :(得分:1)
您可以使用gridview的RowDataBound事件: -
protected void Gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[16].BackColor = System.Drawing.Color.Green;
}
}
这将设置列17
中的所有行的背景颜色(我使用16
,因为它基于零索引)到绿色除了标题。如果您还想设置标题的颜色,请不要检查DataRow
条件。
此外,如果您想要从1-20列那样为几个范围着色,那么您可以使用for
循环。
答案 1 :(得分:0)
我说要使用
Row[xx].Cells[xx].BackColor = System.Drawing.Color.xxx
在行的数据绑定事件中。您可以在网上查找可用的颜色。
希望有所帮助