我有一个使用动态填充的DropDownLists和OnSelectedIndexChanged事件的asp.net页面。几天前,我发现了一个缺陷,点击后退按钮会从浏览器的缓存中加载前一页,所以DropDownList将会有一个选定的索引(因此OnSelectedIndexChanged事件不会正确触发,因为它没有选择默认值指数)。我理解了这个问题并且搜索了一下。这是一个众所周知的问题,因为浏览器如何与页面交互,因此没有简单的解决方案。经过一番思考,我去了一个简单的JavaScript解决方案重置ddls:Internet Explorer的后退按钮和javascript
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中这个功能完美。有什么建议么?思考?
谢谢。
这对我的日程安排来说很重要,但如果这就是生活的方式,那么它有时候就是这样。感谢您的链接! – Dio 2010-12-21 18:02:19