protected void Page_Load(object sender, EventArgs e)
    {
        SqlDataAdapter da = new SqlDataAdapter("select distinct Department from jz", connn);
        DataTable dt = new DataTable();
        da.Fill(dt);
        Button[] Mybuttoe = new Button[dt.Rows.Count];
        for (int i = 0; i < Mybuttoe.Length; i++)
        {
            Mybuttoe[i] = new Button();
            buttoe.ID = "Mybuttoe" + i;
            Mybuttoe[i].Text = dt.Rows[i][0].ToString().Trim();
            Mybuttoe[i].Style.Add("border", "1px solid #50657A");
            Mybuttoe[i].Style.Add("background-color", "#5C758D");
            Mybuttoe[i].Style.Add("height", "30px");
            Mybuttoe[i].Style.Add("color", "#FFFFFF");
            Mybuttoe[i].Style.Add("width", "81px");
            Mybuttoe[i].Style.Add("cursor", "pointer");
            Mybuttoe[i].Style.Add("font-size", "16px");
            Mybuttoe[i].Style.Add("margin-left", "3px");
            Mybuttoe[i].Click += new System.EventHandler(buttoe_Click);
            fi.Controls.Add(Mybuttoe[i]);
        }
    }
    protected void buttoe_Click(object sender, EventArgs e)
    {
        SqlDataAdapter da = new SqlDataAdapter("select jz.*,kc.Quantity from jz,kc where jz.KCID=kc.ID", connn);
        da.Fill(ds, "jz");
        GridView2.DataSource = ds.Tables[0];
        GridView2.DataBind();
        ds.Clear();
        ((Button)sender).Style.Add("color", "#FFFF00");
    }功能的描述:
1.从数据库获得一字段,去重复后,生成按钮,并给按钮初始样式,如上面代码;
2.给每个按钮加上相应的托管单击事件,如上面代码;
3.红色代码段,可以为当前的按钮改变颜色,如上同代码;
我的问题是:如何才能点当前按钮改变颜色的同时,其他按钮回到初始样式呢?
请大神们帮我改改吧!努力了好久,终究还是不会.

解决方案 »

  1.   

    我给你方案:
    后台加这个:Mybuttoe[i].onClientClick="javascript:doClick(this);"
    Mybuttoe[i].CSSCLASS="BTN"
    前台加以下脚本:function doClick(o)
    {
       var btns=document.getElementsByTagName("input");
       for (var i=0;i<=btns.length-1;i++)
       {
           if (btns[i].className=="BTN" && btns[i]!=o)
           {btns[i].style.border="";
             btns[i].style.样式属性=指定的值 //这里我就不一一写了!
            }
       }
    }
    如果使用Jquery,就更方便了
    $(".Btn").each(function(i){这里面写上面的逻辑});
      

  2.   

    如果只用后台的话,可以直接将除当前点击事件外的按钮属性改回默认值就可以了!将Mybuttoe设为为模块的公用变更,然后在点击事件中循环将按钮属性改回默认值就可以了,当然要除了当前sender,即点击的按钮!