UpdatePanel initializeRequest控制值太晚改变?

时间:2012-10-04 16:26:26

标签: vb.net ckeditor pagerequestmanager

这是我的代码:

<asp:UpdatePanel ID="up1" runat="server">
    <ContentTemplate>
        <script type="text/javascript">
            var app = Sys.WebForms.PageRequestManager.getInstance();
            app.add_pageLoaded(createEditor)
            app.add_initializeRequest(removeEditor)

            function createEditor() {
                if (editor) return;
                var config = { toolbar: 'Description', width: 540 };
                editor = CKEDITOR.replace("editor", config);
            }

            function removeEditor() {
                if (!editor) return;
                editor.destroy();
                editor = null;
            }
        </script>

        <textarea id="editor" cols="1" rows="1" runat="server">
        </textarea>

        <asp:Button ID="btnsubmit" Text="Get 'er Done" runat="server" />
        <div>
            <%=strmessage%>
        </div> 
    </ContentTemplate>
</asp:UpdatePanel>

当面板加载时,CKEditor将应用于textarea。当面板回发时,必须销毁编辑器以将数据放回textarea。在此代码中,编辑器不会及时销毁以更新回发数据。如果我这样做,它可以工作:

<asp:Button ID="btnsubmit" onClientClick="removeEditor()" Text="Get 'er Done"
   runat="server" />

问题是UpdatePanel并不总是用该按钮触发,有时它是远程触发的。似乎在调用initializeRequest时,已经设置了textarea的值。有没有办法在此时更新该值?

1 个答案:

答案 0 :(得分:0)

答案:如果您使用的是.NET,请忘记CKEditor,tinyMCE以及所有其他富文本编辑器。我无法相信我花了这么长时间才发现AJAX Control Toolkit