解决FCKeditor在updatepanel中回传失效的问题
最近在编程中接触到一些图文编辑器,其中FCKeditor是比较优秀的,它既能支持IE8.0(freetextbox目前不支持),又比较方便 地自定义工具栏。但FCK有个很“难受”的问题,如果放在Updatepanel中,FCKeditor的值在回传时会先清空再执行其它操作,导致保存空 值。刚开始也想放弃用updatepanel,总是不服,今天又遇到这个问题,查了很多资料,终于在一篇英文资料里找到线索(特此注明,百度上很多中文资 料中提到的解法不正确),再改良一下,效果还可以,所以特此写下来。
原来在Updatepanel中回传,FCKeditor的UpdateLinkedField没有重新调用,不能把值赋到隐藏域中。因此只要在回传时显式调用UpdateLinkedField即可。解法如下:
前台.aspx加JS代码
<script language="javascript" type="text/javascript"> function FCKUpdateLinkedField(id) { try { if(typeof(FCKeditorAPI) == "object") { FCKeditorAPI.GetInstance(id).UpdateLinkedField(); } } catch(err) { } } </script>
后台.cs 在Page_Load()加入:
ScriptManager.RegisterOnSubmitStatement(fkContent, fkContent.GetType(), "fkContent", "FCKUpdateLinkedField('" + fkContent + "');");