日期:2014-05-17  浏览次数:20401 次

VS后台自动生成Button按钮的样式问题。

1.从数据库读出字段的内容,在page_load中生成Button代码如下(bcz为隐藏控件,初始值为空;fi为DIV容器):
  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();

            if (Mybuttoe[i].Text != bcz.Value)
            {
                Mybuttoe[i].CssClass = "autobutton";
            }
            if (Mybuttoe[i].Text == bcz.Value)
            {
                Mybuttoe[i].CssClass = "autobuttonA";
            }
            Mybuttoe[i].Click += new System.EventHandler(buttoe_Click);
            fi.Controls.Add(Mybuttoe[i]);

2.给生成的BUTTON代码写一个单击事件代码如下:
 public Button buttoe = new Button();
    protected void buttoe_Click(object sender, EventArgs e)
    {
        bcz.Value=((Button)sender).Text.Trim().ToString();
        }

3.效果如图
4.以上代码得到的效果是:页面第一次加载,显示三个黑色字体按钮,当我第一次点小王,这时三个按钮的样式没变化,当我再次点小王,这次就对了,小王变为红色字体了,接着我又点小李,这时小王仍然为红色,小李没变,再点小李,小李就变成红色了……就这么总是慢一拍。请问,这样的问题出在什么地方,该如何解决啊?
------解决方案--------------------
        Button[] Mybuttoe = new Button[3];
        protected void Page_Load(object sender, EventArgs e)
        {
           
            for (int i = 0; i < Mybuttoe.Length; i++)
            {
                Mybuttoe[i] = new Button();
                Mybuttoe[i].ID = "Mybuttoe" + i;
                Mybuttoe[i].Text = "Mybuttoe" + i;
                Mybuttoe[i].Click += new System.EventHandler(buttoe_Click);
           &