Цвет фона не восстанавливается для динамически генерируемых элементов управления (ASP.NET) - PullRequest
0 голосов
/ 21 апреля 2011

Я генерирую <TABLE> динамически в ASP.net.Исходя из определенных событий, мне нужно выделить (с помощью цвета фона) конкретную ячейку <TD>, о которой идет речь, и снять выделение с любой ранее выбранной ячейки.

К сожалению, после каждого события ранее выбранные ячейки все еще подсвечиваются.Я написал небольшой фрагмент кода, который повторяет мою проблему с двумя кнопками, имитирующими экземпляры двух событий.

Создание таблицы ...

    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");
    }

Любая помощь или указатели будут с благодарностью!Альтернативный подход для достижения желаемого эффекта тоже будет приветствоваться!

1 Ответ

0 голосов
/ 21 апреля 2011

ViewState вернулся, чтобы преследовать меня!

При создании настройки динамических элементов управления EnableViewState = false решает проблемы.

Здесь ASP.net восстанавливал цвет фона из ViewState, и в большинстве случаев это поведение, которое вы хотите и ожидаете для динамически генерируемых элементов управления!

...