2012-07-14 174 views
3

我在asp.net的更新面板中遇到了CKEditor問題。 我有多個CKEditor頁面上的標籤控件,即每個標籤中有一個ckeditor。CKEditor在更新面板中無法正常工作

string scriptAdd = @"var editor = CKEDITOR.instances['ctl00_ContentPlaceHolder1_faqeditor']; if (editor) { editor.destroy(true); } CKEDITOR.replace('ctl00_ContentPlaceHolder1_faqeditor');"; 
    ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "", scriptAdd, true); 

上述代碼片段有助於在更新面板中呈現編輯器。但是,回發完成後,它仍顯示較早的值,而不是更改後的值,即編輯器不反映在更新面板中更改標籤後所做的更改。

同樣的事情沒有更新面板工作得很好。

有沒有解決這個問題的方法?

+0

我得到的錯誤,當我嘗試透過表格內更新面板「i.contentWindow爲空」。 – manu5987 2012-07-30 04:06:50

回答

1

對不起,對此的反應遲了,但答案也可能對其他人有幫助。您還需要在代碼後面執行以下操作:

ScriptManager.RegisterOnSubmitStatement(this,this.GetType(),「updatescript」,「CKEDITOR.instances ['ctl00_ContentPlaceHolder1_faqeditor']。updateElement();」);

希望這會有所幫助。

+0

CKeditor在2016年仍然存在這個問題!請問上面的「答案」是什麼意思?這只是代碼..哪裏是解釋爲什麼這對你有用?謝謝 – Fandango68 2016-12-01 04:50:16

6

正義的力量的CKEditor上的變化更新textarea的:

var ckEditor = CKEDITOR.replace('ctl00_ContentPlaceHolder1_faqeditor'); 

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

現在這應該是官方的答案。謝謝! – Fandango68 2016-12-01 04:51:24

0
<form id="form1" runat="server"> 
    <asp:ScriptManager ID="scrpM" runat="server" EnablePageMethods="true"> 
    </asp:ScriptManager> 

    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
      <asp:Button ID="btnshow" runat="server" Text="Show Hidden Editor" /> 
      <div id="divEditor" runat="server" visible="false"> 
       <asp:PlaceHolder ID="plCKEditor" runat="server"></asp:PlaceHolder> 
      </div> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
    </form> 


---------- 


Add editor inside a div with visible="false" 
and on the button click you set visible="True" 
it's works fine for me 
+0

?? !!這是什麼?一個答案? – Fandango68 2016-12-01 04:50:53