0

我已經解決了這個問題。我將CKEditor移到了UpdatePanel之外。 UpdatePanel中的按鈕允許我觸發一個異步回發,它仍然允許我訪問需要將它保存在數據庫中的RepeaterItem中的數據。ckeditor 4在異步回傳後只能在IE中打破

CKEditor不在UpdatePanel中,它在異步回發後不再鎖定。我仍然不知道究竟是什麼原因導致CKEditor在回發後突破,但至少我學會了如何防止它發生。希望這個答案可以幫助其他人一些時間。


我有一個ASP.NET Repeater放置多個UpdatePanel到我的頁面,CKEditor文本框在其中供用戶回答問題。我提供了一個「保存答案」按鈕,允許異步回傳保存當前答案。

在Internet Explorer中,在異步回發(正確保存答案)後,頁面鎖定並且不允許用戶再次選擇文本框或頁面上的任何文本。用戶仍然可以點擊「繼續」按鈕和任何鏈接離開頁面,點擊其中一個CKEditor圖標(例如,粗體按鈕或字體大小下拉菜單),恢復點擊文本框並選擇文本再次在頁面上。

其他所有主流瀏覽器都可以正常工作。這發生在IE 8+(8之前沒有支持或者它可能會發生在那裏)。

下面是相關的代碼:

的Javascript

function pageLoad() { 
     $(".editor").each(function() { 
      $(this).ckeditor().editor.on("change", function (event) { 
       // Updates the asp control on change 
       event.editor.updateElement(); 
      }); 
     }); 
    } 

標記(在一箇中繼器的ItemTemplate,重複在適用的數據的每個問題)

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     ... Question stuff here... 
     <asp:TextBox ID="txtAnswer" runat="server" TextMode="MultiLine" CssClass="editor"></asp:TextBox> 
     <div> 
     <asp:Button ID="btnSave" runat="server" Text="Save Answer" Enabled="false" OnClick="SaveAnswer" /> 
     </div>      
    </ContentTemplate> 
</asp:UpdatePanel> 

有在不發生異常C#和SaveAnswer()方法運行成功,保存了答案,但這個小故障似乎對我來說很奇怪......特別是防止事實你可以選擇頁面上的任何文本,而不僅僅是在CKEditor實例中。

任何建議非常感謝 - 感謝您花時間檢查我的問題。

回答

0

我已經解決了這個問題。我將CKEditor移到了UpdatePanel之外。 UpdatePanel中的按鈕允許我觸發一個異步回發,它仍然允許我訪問需要將它保存在數據庫中的RepeaterItem中的數據。

CKEditor不在UpdatePanel中,它在異步回發後不再鎖定。我仍然不知道究竟是什麼原因導致CKEditor在回發後突破,但至少我學會了如何防止它發生。希望這個答案可以幫助其他人一些時間。

0

只是讓CKEditor的更新變化textarea的:

var ckEditor = CKEDITOR.replace(textAreaId); 

ckEditor.on("change", function (event) { 
    event.editor.updateElement(); 
});