2010-12-21 65 views
2

我有一个使用动态填充的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中这个功能完美。有什么建议么?思考?

谢谢。

回答

1

你碰巧看看.NET 3.5中的历史点功能吗? http://www.pin5i.com/showtopic-16198.html。这可以通过自定义状态管理功能帮助解决当前问题。

HTH。

+0

这对我的日程安排来说很重要,但如果这就是生活的方式,那么它有时候就是这样。感谢您的链接! – Dio 2010-12-21 18:02:19