Zrlhappy的博客
                               从今天起, 做一个幸福的人
                                    喂马, 劈柴, 周游世界
                                    从今天起, 关心粮食和蔬菜
                                    我有一所房子, 面朝大海, 春暖花开
                                    给每一条河每一座山取一个温暖的名字
                                    我也愿面朝大海, 春暖花开……
1.选中GridView控件,在右边属性/闪电标志的事件列表里,双击数据栏下的RowDataBound,则自动添加到.cs文件中一个GridView1_RowDataBound函数供你写代码,代码如下:

   protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

    {

        string myUpdateTime = e.Row.Cells[2].Text;

        //Response.Write(myUpdateTime);

        if (myUpdateTime == DateTime.Today.ToString())

        {

            e.Row.BackColor = System.Drawing.Color.Yellow;

        }

    }

2.需要说明的是:要取出判断值的列为第几列,这个可是个问题哦。这个列的确定方法是:以显示列为准,从0开始计数得到的。
3.在我用到这个功能时候,却出现了个意外情况,我的GridView中明明有十列,我要取得是从0数的话,第6列的值,可是,系统老是提示我说Cells[6]中的值越界,因为没有这么多列,大概意思就是这。取的话,只能取到0列和1列,好奇怪的问题哦。
     我的数据只有3行,可写了语句把每行列的总数输出出来,竟然是10列、10列、10列、1列,让人觉得特别的#@$$%$%&????莫名其妙阿,怎么回事儿到最终都没有搞明白,不过在函数中加了判断语句判断了一下每行的总列数,结果才算出来。代码如下:

 protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e)
    {
        //下面语句是把每行的总列数输出出来。
        //Response.Write(e.Row.Cells.Count.ToString()+"---");  

        if (e.Row.Cells.Count >= 6)
        {
            string myUpdateTime = e.Row.Cells[6].Text;
            if (myUpdateTime == "0")
            {

                e.Row.BackColor = System.Drawing.Color.Yellow;

            }
        }
   
    }

posted on 2006-03-14 18:26  zrlhappy  阅读(148)  评论(0编辑  收藏  举报