switch(rec)
{
case "1":
DataGrid1.Items[i].BackColor = Color.Red;
break;
case "2":
DataGrid1.Items[i].BackColor = Color.Blue;
break;
case "3":
DataGrid1.Items[i].BackColor = Color.Red;
break;
case "4":
DataGrid1.Items[i].BackColor = Color.Red;
break;
case "5":
DataGrid1.Items[i].BackColor = Color.Red;
break;
}

解决方案 »

  1.   

    在DataGrid1_ItemDataBound事件中处理:private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
      if(e.Item.Cells[0].ToString() == "1")
      {
         e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#dddddd'");
       }
      if(e.Item.Cells[0].ToString() == "2")
      {
         e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#eeeeee'");
       }   //一次类推}
      

  2.   

    错了 :
    e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#dddddd'");应改为:
    e.Item.Attributes.Add("bgcolor","#dddddd");
      

  3.   

    老写错:e.Item.Attributes.Add("BackColor","#dddddd");
      

  4.   

    rivate void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemIndex>=0 && e.Item.DataItem is DataRowView)
    {
    DataRowView row=(DataRowView)e.Item.DataItem;
    if(row["rec"].ToString()=="1")
    {
    e.Item.Cells[1].ForeColor=Color.Red;
    }
    }
                        }
    其中Cells[1]里的1看你是要哪一行变,要记录改变颜色的话,用ForeColor属性.
      

  5.   

    to  chnking(kent) 你的例子运行后没反应
    to  BenZ004(仲陵) 你的例子运行得不错,但和我的想法不太一样,我的意思是要整行的颜色都变,而不是一个字段。
        不过我还是十分感谢两位!一会看看别人没有更好的办法就给分。
      

  6.   

    需要整行变的话其中一个方法是在BENz004的方法中加入:
    int numj=e.Item.Cells.Count;
    for(int j=0;j<numj;j++)
    {
     e.Item.Cells[j].ForeColor=Color.Black;
     e.Item.Cells[j].BackColor = Color.Red;
    }
      

  7.   

    for (int i=0;i<DataGrid1.Items.Count;i++)
    {
    switch(DataGrid1.Items[i].Cells[2].Text.Trim().ToStrong())//设你表的第三列放的是rec
    {
    case "1":
    DataGrid1.Items[i].BackColor = 你想要的颜色;
    break;
    case "2":
    DataGrid1.Items[i].BackColor = 你想要的颜色;
    break;
    case "3":
    DataGrid1.Items[i].BackColor = 你想要的颜色;
    break;
    case "4":
    DataGrid1.Items[i].BackColor = 你想要的颜色;
    break;
    case "5":
    DataGrid1.Items[i].BackColor = 你想要的颜色;
    break;
    }
    }
      

  8.   

    不错,问题解决了,谢谢。
    各位高手留下msn好吗?可以一起交流学习呀!
    5:00结贴
      

  9.   

    up!
    分数无所谓的。
    呵,整行变就如 xrll() ,加入循环就可以了啊!
    我的MSN是[email protected]