【问题标题】:How to I set a Grid View Cell Value colour?如何设置网格视图单元格值颜色?
【发布时间】:2015-10-26 08:42:21
【问题描述】:

我有一个通过存储过程动态填充的网格视图

我想问一下如何在填充 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();

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案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 循环。

    【讨论】:

    • 这个怎么循环看值是否属于要设置的颜色?
    • @JamesBoer - 没听懂,它为每一行循环,我们只需要担心它的列。
    【解决方案2】:

    我会说使用

    Row[xx].Cells[xx].BackColor = System.Drawing.Color.xxx
    

    在该行的数据绑定事件中。您可以在网上查找可用的颜色。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2018-06-22
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 2011-05-07
      • 2011-07-07
      相关资源
      最近更新 更多