我已經解決了這個問題。我將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實例中。
任何建議非常感謝 - 感謝您花時間檢查我的問題。