Asp.net ImageButton不会在IE10上发帖

Asp.net ImageButton不会在IE10上发帖,asp.net,postback,internet-explorer-10,Asp.net,Postback,Internet Explorer 10,最近,我们在IE10上测试了我们的产品,遇到了一个关于服务器按钮控件“Asp:ImageButton”不能在带有UpdatePanel的IE10上启动的问题。 下面是示例代码: <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePane

最近,我们在IE10上测试了我们的产品,遇到了一个关于服务器按钮控件“Asp:ImageButton”不能在带有UpdatePanel的IE10上启动的问题。 下面是示例代码:

<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        Here is the content.
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="buttonSubmit" />
    </Triggers>
</asp:UpdatePanel>
<br />
<br />
<asp:Button ID="buttonSubmit" runat="server" ToolTip="Submit" OnClick="buttonSubmit_Click" />
</form>
有两件事让我很困惑: 其中一个问题是,只有当我部署在IIS上时才会出现,并且在VS上调试时效果良好。 二是如果我移除上面两个标签“br”,事件将被触发。此外,如果我将ImageButton更改为Button,事件也将被触发

所以,我不知道我是否遗漏了什么或者误解了ImageButton和Button控件的生命周期。 任何帮助都将不胜感激


测试环境:VS2010、IIS 7.5、IE10(10.0.9200.16484)

只需安装.NET Framework 4.5即可解决此问题。

这个问题可能是由ImageButton IE10错误引起的,该错误涉及IE10错误地将坐标转换为十进制而不是整数。这会导致IE10上的许多(如果不是大多数的话)情况下ImageButton点击失败

即使您不将应用程序池切换到.NET Framework 4.5,这也可以解决问题

就我而言,我将应用程序池保留在.NETFramework 3.5中。显然,安装.NET Framework 4.5会覆盖其他Framework版本的一些文件

请参见“变通方法”部分


相关:IE10有一个bug。如果您开发了一个新的aspx页面,并使用UpdatePanel将该页面轴化, 页面无法正常工作。不会触发任何服务器事件。但是其他浏览器也能很好地完成它们的工作。我想知道为什么微软没有注意到/修复这个问题。我用强制IE9模式解决了这个问题

<meta http-equiv="x-ua-compatible" content="IE=9" />


我将ImageButton更改为LinkButton,并将按钮图像放入其中。有效。

您可以在页面预渲染中执行相同的操作

private bool alert;
protected void buttonSubmit_Click(object sender, EventArgs e)
    {

        alert= true;
        ViewState["alert"] = alert;
    }

protected void Page_PreRender(object sender, EventArgs e)
    {
        if (ViewState["alert"] != null)
            alert= (bool)ViewState["alert"];
        if (alert)
        {
            alert= false;
            ScriptManager.RegisterStartupScript(this, this.Page.GetType(), "alert", "alert('It works.')", true);

        }
    }

更新面板在IE 10中无法正常工作,按钮点击、图像等。

将ImageButton更改为链接按钮,并将图像放入其中


这是一个很好的解决方法,对我来说很有用。

检查我的答案和其他答案:我怀疑您的问题根源于新的IE10 ImageButton错误。我安装了.NET Framework 4.5(尽管我让我的IIS站点运行3.5),IE10和imagebuttons的问题已经解决。感谢您的快速回复,George。好消息是,它只需升级框架即可工作。再次感谢,好消息。我发布了一个答案,这样我们就可以对关注此事的路人提供更多帮助。4.5是就地更新,而不是并行更新。如果您已经在4.0下运行站点,升级可能会导致问题。它应该是向后兼容的,但是人们已经记录了破坏性的变化。
private bool alert;
protected void buttonSubmit_Click(object sender, EventArgs e)
    {

        alert= true;
        ViewState["alert"] = alert;
    }

protected void Page_PreRender(object sender, EventArgs e)
    {
        if (ViewState["alert"] != null)
            alert= (bool)ViewState["alert"];
        if (alert)
        {
            alert= false;
            ScriptManager.RegisterStartupScript(this, this.Page.GetType(), "alert", "alert('It works.')", true);

        }
    }