2013-01-31 49 views
0

我在我的ASP.NET 4.0應用程序中使用Telerik RAD編輯器控件,它在任何更新面板之外。在同一頁中,我使用了ModalPopUps &更新pannels以防止意外的完整回發。 從Javascript函數&以及從JavaScript函數調用的幾個服務器端按鈕單擊事件中,還有幾個Pagemethods。 在進程中經常頁面拋出下面突出顯示的Javascript錯誤&沒有JavaScript功能進一步進行或進一步調用任何服務器端方法或事件&程序已被吊死。一旦它被託管在本地服務器中,並且下面定義的錯誤發生,那麼應用程序將與進一步的JavaScript調用進行交互。談到避免Javascript錯誤,同時回發頁面

錯誤消息來自:

function Sys$WebForms$PageRequestManager$_endPostBack(error, executor, data) { 
     if (this._request === executor.get_webRequest()) { 
      this._processingRequest = false; 
      this._additionalInput = null; 
      this._request = null; 
     } 
     var handler = this._get_eventHandlerList().getHandler("endRequest"); 
     var errorHandled = false; 
     if (handler) { 
      var eventArgs = new Sys.WebForms.EndRequestEventArgs(error, data ? data.dataItems : {}, executor); 
      handler(this, eventArgs); 
      errorHandled = eventArgs.get_errorHandled(); 
     } 
     if (error && !errorHandled) { 
      **throw error;** 
     } 
    } 

上述標記區域引發錯誤。

我嘗試了以下定義的方式,但還沒有能夠完成相同的事情,即要麼停止反映這個錯誤或跳過這個錯誤,以便它不會產生任何影響正常過程循環的影響應用。

試圖解決方法1. 首先,我曾試圖註冊該控件位於下更新潘內爾&在頁面加載執行任何服務器端事件。

ScriptManager ScrMgr = new ScriptManager(); ScrMgr.RegisterAsyncPostBackControl(this.LstBoxXSD);

試過溶液2 其次,我試圖結合控制與更新潘內爾內的臺異步觸發。

**<asp:AsyncPostBackTrigger ControlID="LstBoxXSD" EventName="SelectedIndexChanged"/>** 

嘗試解決方案3. Nextly,還有就是用第三方編輯器控制的keydown事件從jQuery的極品,我不得不鉤住「的KeyDown」事件編輯器控制範圍內,但一旦更新潘內爾該IFrame執行任何異步回發它解除綁定,所以我已經在JQuery中完成下面的代碼,以維持iframe在編輯器&之間的掛鉤綁定它是KeyDown事件。

**<script language="javascript" type="text/javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
    function EndRequestHandler(sender, args) { 
     $(document).ready(function() { 
      $(function() { 
       $('#3rdPartyControl_contentIframe').contents().find("body").bind("keydown", function (e) { 
        e = e || window.event; // because of Internet Explorer quirks... 
        var code = e.which || e.charCode || e.keyCode; ; 
        if (code == 49 && !e.altKey && !e.ctrlKey && !e.shiftKey) { 
         // alert(code); 
        } else if (code == 65 && e.altKey) { 
         // alert(code); 
        } 
        else if (code == 83 && e.altKey) {      
         SelectElement(); 
        } 
        else if (code == 80 && e.altKey) { 
         if (String($find("3rdPartyControl").getSelectionHtml().trim()).length > 0) { 
          RemoveParentElem(); 
         } 
        } 
        else if (code == 82 && e.altKey) { 
         if (String($find("3rdPartyControl").getSelectionHtml().trim()).length > 0) { 
          RemoveElem(); 
         } 
        } 
        else { 
        } 
       }); 
      }); 
     }); 
    } 
</script>** 

重要的是,我已經做了正文後面的上述JQuery代碼。 請幫我解決上述問題,我可以停止產生這個錯誤或繞過錯誤無論如何。因爲它完全推遲了項目的完成。

回答

0

這是第一次從更新pannel子控件事件寫入一些會話變量的某種方式。爲避免此解析錯誤,應遵循以下解決方案之一: 1. Page.Trace.IsEnabled = false; 應該在同步頁面加載&異步頁面加載時使Trace禁用。 (!Page.IsPostBack) Page.Trace.IsEnabled = false;如果(!Page.IsPostBack)爲 。 } else if(ScriptManager.GetCurrent(this.Page)。IsInAsyncPostBack) {. Page.Trace.IsEnabled = false; }

2. 在Page屬性中添加EnableEventValidation =「false」。

3.Put第一次創建cookie時,會話變量中的初始值,而頁面加載。

相關問題