在一个GRIDVIEW中,如果某一行第二列的数据小于第一列,则整行记录的背景就改为灰色。这个操作改如何写代码?我不知道在哪里写代码。请各位启发一下。

解决方案 »

  1.   

    在DataBanding事件中可以试一下
      

  2.   

    protected void GridView2_DataBound(object sender, EventArgs e)
        {
            GridView gv = (GridView)sender;        for (int i = 0; i < gv.Rows.Count; i++)
            {           
                    for (int j = 0; j < gv.Rows[i].Cells.Count; j++)
                    {
                        if(比较一下){
                                gv.Rows[i].Cells[j].BackColor = Color.Yellow;
                                gv.Rows[i].Cells[j].ToolTip = item[key].ErrorMessage;
                            }
                        }                }
                }        }
        }
      

  3.   

    一共有三个事件:DataBinding(),DataBound(),RowDataBound(),要在哪个事件里改啊?
      

  4.   

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
             if (Convert.ToInt32(Row.Cells[1].Text) < Convert.ToInt32(e.Row.Cells[2].Text) )
                 e.Row.BackColor = System.Drawing.Color.Gray;
        }
      

  5.   


    //首先你要添加一個package
    using System.Drawing;
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            //当shortage为负值时,这一栏为红色
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (Convert.ToInt32(GridView1.Rows[i].Cells[1].Text) < Convert.ToInt32(GridView1.Rows[i].Cells[0].Text))
                {
                    GridView1.Rows[i].BackColor = Color.Gray;
                }
            }
    }