DataGrid每行根据某个字段的值变换颜色?

时间:2023-02-11 15:01:15
DataGrid中有个字段status,如果等于0,这一行的背景色是白色,如果大于0,这一行的背景色是红色,请问如何做?

8 个解决方案

#1


DataGrid中有颜色的属性设置,做判断就可以了,自己去找找

#2


GridView1.DataBind();
        for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
        {
            DataRowView mydrv = myds.Tables["飞狐工作室"].DefaultView[i];
            string score = Convert.ToString(mydrv["起薪"]);//要判断的字段
            if (Convert.ToDouble(score) < 34297.00)//大家这里根据具体情况设置可能ToInt32等等
            {
                GridView1.Rows[i].Cells[4].BackColor = System.Drawing.Color.Red;
            }
        }

#3


是要根据绑定的数据来判断吗?
如果是
就在绑定后
foreach(DataGridItem dg in this.DataGrid1.Items)
{
   根据绑定的数据情况判断每行的颜色
   dg.Attributes.Add("style","哪种颜色");
}

#4


用Container.Eval,应该可以,你要自己试一下,有思路就可以了

#5


在ItemDataBound 事件裡寫

if(e.ItemIndex >= 0)
{
  string Status = DataBinder.Eval(e.Item.DataItem,"status").ToString();
  if(Status == "0"){
     e.Item.CssClass = "你要的";

     或者

     e.Item.Style.Add("bgColor","value");
     bgColor 可能寫錯了,你可以查查
  }
}

#6


我的blog上有你要的解决方法
篇名:GridView使用技巧之:根据绑定的内容改变单元格(或者行)的显示样式 
http://blog.csdn.net/j_jake/archive/2007/06/28/1670000.aspx

#7


private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
DataRowView row;
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 

row = (DataRowView)e.Item.DataItem;
if (Convert.ToInt32(row["status"]) == 0)
e.Item.BackColor = Color.White;
else if (Convert.ToInt32(row["status"]) > 0)
e.Item.BackColor = Color.Red;
}
}

#8


要是从数据源中读取statu的值怎么编写程序?
请教高人!谢谢

#1


DataGrid中有颜色的属性设置,做判断就可以了,自己去找找

#2


GridView1.DataBind();
        for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
        {
            DataRowView mydrv = myds.Tables["飞狐工作室"].DefaultView[i];
            string score = Convert.ToString(mydrv["起薪"]);//要判断的字段
            if (Convert.ToDouble(score) < 34297.00)//大家这里根据具体情况设置可能ToInt32等等
            {
                GridView1.Rows[i].Cells[4].BackColor = System.Drawing.Color.Red;
            }
        }

#3


是要根据绑定的数据来判断吗?
如果是
就在绑定后
foreach(DataGridItem dg in this.DataGrid1.Items)
{
   根据绑定的数据情况判断每行的颜色
   dg.Attributes.Add("style","哪种颜色");
}

#4


用Container.Eval,应该可以,你要自己试一下,有思路就可以了

#5


在ItemDataBound 事件裡寫

if(e.ItemIndex >= 0)
{
  string Status = DataBinder.Eval(e.Item.DataItem,"status").ToString();
  if(Status == "0"){
     e.Item.CssClass = "你要的";

     或者

     e.Item.Style.Add("bgColor","value");
     bgColor 可能寫錯了,你可以查查
  }
}

#6


我的blog上有你要的解决方法
篇名:GridView使用技巧之:根据绑定的内容改变单元格(或者行)的显示样式 
http://blog.csdn.net/j_jake/archive/2007/06/28/1670000.aspx

#7


private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
DataRowView row;
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 

row = (DataRowView)e.Item.DataItem;
if (Convert.ToInt32(row["status"]) == 0)
e.Item.BackColor = Color.White;
else if (Convert.ToInt32(row["status"]) > 0)
e.Item.BackColor = Color.Red;
}
}

#8


要是从数据源中读取statu的值怎么编写程序?
请教高人!谢谢