解决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 + "');");

 

 

 转自 http://blog.sina.com.cn/s/blog_41786bfd0100fifr.html

posted @ 2012-07-13 10:51  Mr.H  阅读(960)  评论(0编辑  收藏  举报