我有一个asp.net页面,它使用动态填充的DropDownLists和OnSelectedIndexChanged事件。几天前,我发现了一个缺陷,即按下后退按钮会从浏览器的缓存中加载上一页,因此DropDownList已经有一个选定的索引(因此OnSelectedIndexChanged事件不会正常触发,因为它没有选择默认值指数)。我理解了这个问题,并用Google搜索。由于浏览器与页面的交互方式,这是一个众所周知的问题,没有简单的解决方案。经过一番思考后,我选择了一个简单的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中完美运行。有什么建议?想法?
谢谢。
答案 0 :(得分:1)
您是否碰巧在.NET 3.5中查看历史记录点功能? http://www.pin5i.com/showtopic-16198.html。这可以通过自定义状态管理功能帮助解决当前问题。
HTH。