Кнопка назад и JavaScript в Internet Explorer - PullRequest
2 голосов
/ 21 декабря 2010

У меня есть страница asp.net, которая использует динамически заполненные события DropDownLists и OnSelectedIndexChanged. Несколько дней назад я обнаружил дефект, при котором нажатие кнопки «Назад» приведет к загрузке предыдущей страницы из кэша браузера, поэтому DropDownList уже будет иметь выбранный индекс (следовательно, событие OnSelectedIndexChanged не сработает должным образом, так как не выбрано значение по умолчанию индекс). Я понял проблему и погуглил вокруг. Это хорошо известная проблема, которая не имеет простого решения из-за того, как браузер взаимодействует со страницей. Подумав немного, я пошел с тривиальным решением javascript для сброса ddls:

        var gvTable = document.getElementById("foo");
        if (gvTable != null)
        {
            var actionDDls = gvTable.getElementsByTagName("select");
            for (var i in actionDDls) {
                actionDDls[i].value = 0;
            }
        }

Это сработало хорошо, и я был счастлив. Пока я не проверил это в IE. В IE, похоже, запускается сценарий, ТО затем загружают кэшированные значения DDL. То есть я наблюдаю, как DDL возвращается к индексу 0, а затем внезапно падает до ранее выбранного значения.

Я немного растерялся, я обычно отлаживаю в firebug, но это прекрасно работает в firefox и chrome. Какие-либо предложения? Мысли

Спасибо.

1 Ответ

1 голос
/ 21 декабря 2010

Вы когда-нибудь рассматривали функцию истории точек в .NET 3.5? http://www.pin5i.com/showtopic-16198.html. Это может помочь в решении текущей проблемы с помощью пользовательской функции управления состоянием.

НТН.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...