css - 未为动态生成的控件恢复背景颜色 (ASP.NET)

标签 css asp.net html-table background-color dynamic-controls

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

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

创建表...

    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 恢复背景颜色,在大多数情况下,这是您想要并期望动态生成的控件的行为!

关于css - 未为动态生成的控件恢复背景颜色 (ASP.NET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5746832/

相关文章:

php - 如何将元素定位在DIV内的固定位置

javascript - 自动排序和调整图片库中的图像

html - 将一个 div 拆分为四个独立的 div

html - 我如何定位我的布局,让我的旁边有我的部分?

c# - 将列表 <> 绑定(bind)到 asp.net c# 中的 ListView

html - Colspan 扰乱了表格布局

html - 当我点击图像时,我在它上面放了一个滤镜,它也会影响图像的边框,我怎样才能使边框抵抗它?

c# - 使用 Razor 内联设置 javascript 变量,这是好的做法/安全吗?

c# - 如何按日期/时间对 DataGrid 中的列进行排序

html - 为什么:last-of-type not select the very last cell of a table?