OnSelectedIndexChanged未在生产中触发 - 仅限IE 11

时间:2013-12-18 19:42:55

标签: asp.net internet-explorer internet-explorer-11

我有一个4.0 .NET站点。我有以下要素:

 <asp:DropDownList ID="ddlCounty" Width="250" AutoPostBack="true" runat="server"
 OnSelectedIndexChanged="ddlCounty_SelectedIndexChanged" />

在所有浏览器中本地运行时都可以使用。意思是,它命中了ddlCounty_SelectedIndexChanged函数。在生产中,它适用于IE 11以外的所有浏览器。在IE 11中,它不会抛出任何JS错误,但是当dropDownList发生更改时,它永远不会命中服务器。

我看到了这个修复:IE 10 Fix,它为我的项目添加了2个App_browser文件。我尝试了这个,但它没有用。此外,我已经验证它在IE 10中正常工作。

所以基本上,这个问题只发生在IE 11(非兼容模式)中。

任何人都知道接下来应该尝试什么?

编辑:请求的其他代码:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

3 个答案:

答案 0 :(得分:1)

我在IE上遇到过这个问题(我认为所有版本的IE都很糟糕)。尝试清除所有Cookie和浏览器历史记录。您可能需要更改设置。我为解决这个问题所做的是在Page_Load的后面添加这行代码。

Response.CacheControl = "No-cache";

缓存基本上是IE的快速尝试。据我所知,IE是唯一的缓存浏览器,这只会导致浏览器出现问题。尝试这些步骤,看看你是否有运气。

编辑:我刚看到您正在使用更新面板。不确定您是否尝试过使用触发器。这就是我的做法..

<trigger>
<asp:AsyncPostBackTrigger ControlID="ddlCounty" EventName="SelectedIndexChanged" />
<trigger>

或者你可以在代码背后做到这一点..

UpdatePanel1.Triggers.Add(new AsyncPostBackTrigger()
{
    ControlID = ddlCounty.UniqueID,
    EventName = "SelectedIndexChanged",
});

但我只是把想法扔出去了。这是我试图看到的一件事,如果这是一个可能的解决方案。没有承诺。

答案 1 :(得分:1)

我遇到了同样的问题,下拉事件,复选框只在IE11中触发,如果我将F12 IE控制台UserAgentString转换为IE10,那也可以正常工作

请参阅IE11的此修补程序,如该链接中所述,它将解决此问题
https://stackoverflow.com/a/20422240/2089963

答案 2 :(得分:0)

我最终只是在服务器上安装了.NET 4.5(没有更改网站使用的版本),问题就消失了。