在IE10中點選updatepanel裡面的imagebutton時出現的錯誤:輸入字串的格式不正確( 在 System.Number.StringToNumber)
阿新 • • 發佈:2019-01-25
問題描述:在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.
<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>