5

最近、IE10で製品をテストしたところ、UpdatePanelを使用したIE10でサーバーボタンコントロール「Asp:ImageButton」が起動されないという問題が発生しました。以下はサンプルコードです。

<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>

サーバ側:

    protected void buttonSubmit_Click(object sender, ImageClickEventArgs e)
    {
        ScriptManager.RegisterStartupScript(this, this.Page.GetType(), "alert", "alert('It works.')", true);
    }

私を混乱させた2つのことがあります。1つは、IISに展開した場合にのみ問題が発生し、VSでデバッグするときに正常に機能することです。2つは、上の2つのタグ「br」を削除すると、イベントが発生するというものです。また、ImageButtonをButtonに変更すると、イベントも発生します。

そのため、何かが足りないのか、ImageButtonとButtonコントロールのライフサークルを誤解しているのかわかりません。どんな助けでも大歓迎です。

テスト環境:VS2010、IIS 7.5、IE10(10.0.9200.16484)

4

5 に答える 5

7

.NET Framework 4.5をインストールするだけで、この問題を解決できます。

この問題は、IE10が座標を整数ではなく10進数に誤って変換することを含むImageButtonIE10のバグが原因である可能性があります。これにより、IE10のほとんどではないにしても、多くの状況でImageButtonのクリックが失敗します。

これにより、アプリケーションプールを.NETFramework4.5に切り替えなくても問題を解決できます。

私の場合、アプリプールは.NETFramework3.5のままにしました。どうやら.NETFramework4.5をインストールすると、他のフレームワークバージョンの一部のファイルが上書きされます。

こちらの回避策のセクションをご覧ください

関連:IE10が画像ボタンのクリック座標を小数(浮動小数点値)で送信すると、ParseInt32FormatExceptionが発生します

于 2013-03-11T15:51:14.920 に答える
3

ImageButton を LinkBut​​ton に変更し、その中に画像を配置します。

それは素晴らしい回避策です。それは私にとってはうまくいきます。

于 2015-06-18T20:12:04.283 に答える