页面上有20个按钮~代表20个教室然后搜索数据库。如果当天有课按钮显示为绿色.否则显示为灰色~!
我用逐条读取数据只会根据最后一条记录来显示颜色......请大家帮忙~!~

解决方案 »

  1.   

    for(int i=0;i<20;i++)
    {
      if(ObjRows[0].rostring()=="绿色")
    {
       lab.Style.Add("color", "绿色");}
    else
    {
     lab.Style.Add("color", "灰色");}}
    }思路就是循环判断你取的值的颜色是不是数据库中的绿色,是就显示为绿色,不是就是灰色
      

  2.   

    css也可以实现
    button
    {
        background-color:expression(this.value=="有课" ? "#FF7788" : "#7788FF");
    }
      

  3.   

    不知道楼主是如何写代码的,首先按钮的ID最好是唯一的!其次遍历的时候
    btnIndex.backcolor = ValueList[i].Trim() == "wrong"?color.灰色:color.绿色这样应该没错啊
      

  4.   

     我写的似乎有点麻烦
     SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=byq;database=Study");
            con.Open();
            SqlCommand cmd = new SqlCommand("select * from study where WeekDays='"+DropDownList1.Text.ToString()+"'",con);
            SqlDataReader dr = cmd.ExecuteReader();
            ArrayList arr = new ArrayList();
            
            while (dr.Read())
            {
                string cla = dr.GetString(1);
                arr.Add(cla.ToString());
            }        for (int i = 0; i < arr.Count; i++)
            {
                if (arr[i].ToString() == "1110")
                {
                    //Button1.BackColor = System.Drawing.Color.Green;
                    Button1.Style.Add("Color","green");            }
                else
                {
                   Button1.BackColor = System.Drawing.Color.Gray;
                }
                if (arr[i].ToString() == "1210")
                {
                    Button2.BackColor = System.Drawing.Color.Green;
                }
                else
                {
                    Button2.BackColor = System.Drawing.Color.Gray;
                }
    ......................................................
      

  5.   

      偶是这样写的
     SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=byq;database=Study");
            con.Open();
            SqlCommand cmd = new SqlCommand("select * from study where WeekDays='"+DropDownList1.Text.ToString()+"'",con);
            SqlDataReader dr = cmd.ExecuteReader();
            ArrayList arr = new ArrayList();
            
            while (dr.Read())
            {
                string cla = dr.GetString(1);
                arr.Add(cla.ToString());
            }        for (int i = 0; i < arr.Count; i++)
            {
                if (arr[i].ToString() == "1110")
                {
                    //Button1.BackColor = System.Drawing.Color.Green;
                    Button1.Style.Add("Color","green");            }
                else
                {
                   Button1.BackColor = System.Drawing.Color.Gray;
                }
                if (arr[i].ToString() == "1210")
                {
                    Button2.BackColor = System.Drawing.Color.Green;
                }
                else
                {
                    Button2.BackColor = System.Drawing.Color.Gray;
                }
    ..............
      

  6.   

    你仔细思考下,你每循环一次实际上所有的button的颜色都在变!
      

  7.   

    可以这样来写
    写预置一个表
    结构如下默认所有按钮是灰色使用了net框架2以后有的数据类型泛型list阀值  控制按钮
    1110  button1
    1210  button2
    。。List<string,Button> ctrllist = new List<string,Button>();
    ctrllist.add("1110",button1);
    ctrllist.add("1210",button2);
    ..... for (int i = 0; i < arr.Count; i++) 
     {
        button btn = ctrllist[arr[i].ToString()];
        btn.backcolor = 绿色
    }
      

  8.   

    不好意思应该是Dictionary<string,Button>,List<>是单参数泛型的
    建议你也不要用arraylist,涉及到装箱拆箱你可以使用List<string>代替arraylist