打算在UpdatePanel中使用FCKeditor时,发现了一个小问题:当点击Panel内的按钮进行AsynPostBack后,FCKeditor控件中先前所录入的内容便丢失了。
解决方法:
1.首先在页面中添加如下JS脚本:
<script language="javascript" type="text/javascript">
function MyClass()
{
this.UpdateEditorFormValue = function(val)
{
for ( i = 0; i < parent.frames.length; ++i )
if ( parent.frames[i].FCK )
{
parent.frames[i].FCK.UpdateLinkedField();
}
}
}
var MyObject = new MyClass();
</script>
2.在Page_Load事件中为Button的Click添加该JS方法:
if (!IsPostBack)
{
btnSubmit.Attributes.Add("onclick", "if (typeof(MyObject) != \''undefined\''){
MyObject.UpdateEditorFormValue(); return true;}else{return true;}");
}
3.记得修改UpdatePanel属性UpdateMode="Conditional"
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
</asp:UpdatePanel>
4.另外,如果在FCKeditor控件中加入了图片等信息,需要将页面的ValidateRequest设置为false,至此完毕。