У меня есть страница 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. Какие-либо предложения? Мысли
Спасибо.