JimmyLin(QQ36861131)

亲密接触ASP.NET2.0

博客园 首页 新随笔 联系 订阅 管理

思路:
服务器端的GridView控件与客户端的Table成对应关系,HTML标记可以通过style等属性设置各种样式,服务器端控件相比之下就要 逊色几分。解决的方法:通过Attributes.Add()方法为服务器端控件添加样式。


代码:
假设GridView中包含“姓名”“地址”“性别”等字段,现在要把记录中性别为“男”的行背景设为红色,则可以在GridView1的DataBound()事件中书写代码如下:

void DetailsView1_DataBound(object sender, EventArgs e)
     {
        for (int i = 0; i < GridView1.Rows.Count; i++)
         {
               if (GridView1.Rows[i].Cells[x].Text == "男")
               {
                    //将特定行的背景色设为红色
                    GridView1.Rows[i].Attributes.Add("bgcolor", "red");
                    //将特定单元格的颜色设为灰色
                    // GridView1.Rows[i].Cells[x].Attributes.Add("bgcolor", "gray");                    
               }   
          }
      }

说明:
代码内绿底红字的Cells[x]中的x为性别字段所在的列值。如果性别字段在数据库中以bit类型存储,则该字段在GridView中将显示成CheckBox,这时代码应改为

    void DetailsView1_DataBound(object sender, EventArgs e)
     {
        for (int i = 0; i < GridView1.Rows.Count; i++)
         {
               CheckBox chk = (CheckBox) GridView1.Rows[i].Cells[x].Controls[0];
               if (chk.Checked == true)
               {
                    //将特定行的背景色设为红色
                    GridView1.Rows[i].Attributes.Add("bgcolor", "red");              
               }   
         }
      }

posted on 2005-03-02 15:18  剑鸣  阅读(1002)  评论(0)    收藏  举报