1

我有一个带有自动回发的asp.net 下拉列表控件的asp.net 网页表单页面。当用户在下拉列表中进行选择时,将使用查询字符串参数向同一页面发出获取请求。

在回发时,我读取了查询字符串参数并加载/填充其他控件。

当用户按下浏览器的返回按钮时,前一个请求被提交(连同它的查询字符串)。在后面的代码中,我读取了查询字符串并加载/填充其他控件,效果很好。我还尝试在下拉列表中选择适当的项目(按值)。

我在浏览器中看到的问题是选择中未显示适当的选项文本。通过检查源代码,我可以看到正确的选项具有 selected="selected" 属性,因此在后面的代码中设置所选项目是成功的。但是文本错误地仍然与按下后退按钮之前相同。

奇怪的是,这只发生在 chrome 中。ie 和 firefox 都按预期运行。

有人对 asp.net 下拉列表和 chrome 有任何问题吗?

我被难住了。

我创建了一个简单的例子来说明这个问题。src 可以在https://github.com/beembow/AspDotNetDropDownInChrome.git找到

通过在下拉列表中选择一些值然后按返回按钮来重现错误。

4

2 回答 2

0

他们唯一的修复我发现类似于建议的ASP.NET-Google Chrome 缓存 DropDownList 选择

我实质上添加了一个全局变量,该变量包含要在下拉列表中选择的选项的值。我通过后面代码中的 Page.RegisterStartupScript 执行此操作。

然后我有一些 js 来寻找这个全局值,如果找到它,它会通过 jquery 在 select 中选择适当的选项。

这让我认为这个问题与 chrome 如何处理一些 asp.net 生成的 javascript / viewstate 有关。这也可能与 chrome 缓存策略有关。好奇它在firefox和ie中都可以使用。

无论哪种方式,上述解决方案绝对是一个丑陋的黑客。会对其他人找到的任何解决方案感兴趣。

于 2013-09-25T01:30:12.660 回答
0

您在哪个页面事件中设置下拉列表的选定值?可能是您在页面加载后设置它,这就是为什么您看不到带有所选值的下拉设置的原因。

于 2013-09-24T05:04:51.060 回答