在IE10中点击updatepanel里面的imagebutton时出现的错误:输入字符串的格式不正确( 在 System.Number.StringToNumber)

问题描述:在IE10中点击updatepanel里面的imagebutton时出现“输入字符串的格式不正确”错误,在其它浏览器以及IE7/8/9无此问题

异常消息:

输入字符串的格式不正确。

在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) 在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 在 System.Web.UI.WebControls.ImageButton.LoadPostData(String postDataKey, NameValueCollection postCollection) 在 System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)


在vs中调试时会出现javascript运行时错误:

Sys.WebForms.PageRequestManagerServerErrorException: Input string was not in a correct format.

updatepanel中包含一个grid控件和一个分页控件,在点击分页按钮时出现此问题,代码如下:

    <asp:UpdatePanel runat="server" ID="up" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:DexGrid ID="myGrid" runat="server">
            </asp:DexGrid>
            <asp:DexPagerBar ID="myPager" runat="server" OwnerControlID="myGrid">
            </asp:DexPagerBar>
        </ContentTemplate>
        <Triggers>
        </Triggers>
    </asp:UpdatePanel>

解决方法:在所属页面或所在模板页中加入如下脚本即可解决

    <script type="text/javascript">
        //为解决在IE10中点击updatepanel里面的imagebutton时出现的错误
        Sys.WebForms.PageRequestManager.getInstance()._origOnFormActiveElement = Sys.WebForms.PageRequestManager.getInstance()._onFormElementActive;
        Sys.WebForms.PageRequestManager.getInstance()._onFormElementActive = function(element, offsetX, offsetY) {
            if (element.tagName.toUpperCase() === 'INPUT' && element.type === 'image') {
                offsetX = Math.floor(offsetX);
                offsetY = Math.floor(offsetY);
            }
            this._origOnFormActiveElement(element, offsetX, offsetY);
        };
    </script>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值