【发布时间】:2010-12-21 16:58:32
【问题描述】:
我有一个使用动态填充的 DropDownLists 和 OnSelectedIndexChanged 事件的 asp.net 页面。几天前我发现了一个缺陷,点击后退按钮会从浏览器的缓存中加载上一页,所以 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 中完美运行。有什么建议?想法?
谢谢。
【问题讨论】:
标签: javascript asp.net internet-explorer