Css 动态生成的控件(ASP.NET)的背景色未还原

Css 动态生成的控件(ASP.NET)的背景色未还原,css,asp.net,html-table,background-color,dynamic-controls,Css,Asp.net,Html Table,Background Color,Dynamic Controls,我正在ASP.net中动态生成一个。基于某些事件,我需要突出显示(通过背景色)有问题的特定单元格,并取消突出显示以前选择的任何单元格 遗憾的是,在每个事件之后,以前选择的单元格仍然高亮显示。我编写了一小段代码,用两个按钮模拟两个事件的实例来复制我的问题 创建表格 protected void Page_Init(object sender, EventArgs e) { Table tbl = new Table(); this.Controls.

我正在ASP.net中动态生成一个
。基于某些事件,我需要突出显示(通过背景色)有问题的特定单元格
,并取消突出显示以前选择的任何单元格

遗憾的是,在每个事件之后,以前选择的单元格仍然高亮显示。我编写了一小段代码,用两个按钮模拟两个事件的实例来复制我的问题

创建表格

    protected void Page_Init(object sender, EventArgs e)
    {
        Table tbl = new Table();
        this.Controls.Add(tbl);

        TableRow row = new TableRow();
        tbl.Controls.Add(row);

        TableCell cell1 = new TableCell();
        cell1.Style.Add("background-color", "green");
        cell1.ID = "cell1";
        cell1.Text = "CELL 1";

        TableCell cell2 = new TableCell();
        cell2.Style.Add("background-color", "green");
        cell2.ID = "cell2";
        cell2.Text = "CELL 2";

        row.Controls.Add(cell1);
        row.Controls.Add(cell2);
    }
我在此事件中突出显示第一个单元格

    protected void Button1_Click(object sender, EventArgs e)
    {
        TableCell ctr1 = (TableCell)this.FindControl("cell1");
        ctr1.Style.Add("background-color", "yellow");
    }
在此事件中,我高亮显示第二个单元格。第一个单元格不应再突出显示,因为我刚刚在回发时重新创建了此表

    protected void Button2_Click(object sender, EventArgs e)
    {
        TableCell ctr2 = (TableCell)this.FindControl("cell2");
        ctr2.Style.Add("background-color", "yellow");
    }

任何帮助或指点都将不胜感激!另一种达到预期效果的方法也是受欢迎的

ViewState又回来缠着我了

创建动态控件时,设置
EnableViewState=false
可以解决问题


在这里,ASP.net正在从ViewState恢复背景色,在大多数情况下,这是动态生成的控件所希望和期望的行为

在button2.中,单击您要查找的“cell2”控件,在button 1中单击“cell1”控件。检查that@Eric谢谢显式设置颜色确实解决了这里的问题,但如果我删除此显式代码,则上一个突出显示仍会保留。@Eric,我已更新了代码。当然,它仍会保留,在您发出命令之前它不会更改颜色。哦,我现在看到问题了。提交后,颜色是否仍保留?这是因为缓存内存:)