CKEditor和AjaxControlToolkit的ModalPopup

时间:2012-12-10 09:02:52

标签: asp.net ckeditor ajaxcontroltoolkit

我通过使用CKEditor的ASP.NET控件(v 3.6.4)嵌入了Ckeditor来实现* .ascx控件。我还有来自AjaxControolToolkit4.5的ModalPopup控件,附加到Link Button。单击时,它会显示带有单选按钮列表的面板,并附带一些逻辑背后的代码。

如何更改我的* .ascx控件以在工具栏中有一个CKEditor'a插件按钮,触发此ModalPopup?

代码(不工作):

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="CKEditorWithModalPopup.ascx.cs" Inherits="Controls_CKEditorWithModalPopup" %>

<%@ Register Assembly="CKEditor.NET" Namespace="CKEditor.NET" TagPrefix="CKEditor" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>

<script type="text/javascript">

    $(function () {

        var a = {
            exec: function (editor) {
                javascript: __doPostBack('ctl03$LinkButton1', '') // explicite id for test
            }
        },

        b = 'modalPopup';

        CKEDITOR.plugins.add(b, {
            init: function (editor) {
                editor.addCommand(b, a);
                editor.ui.addButton("modalPopup", {
                    label: 'Modal Popup',
                    icon: "~/Images/modal_popup.png",
                    command: b
                });
            }
        });
    });

</script>

<CKEditor:CKEditorControl ID="CKEditor1" BasePath="~/ckeditor" Toolbar="Basic" runat="server" />

<ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender" runat="server" TargetControlID="LinkButton1"
        PopupControlID="Panel1" BackgroundCssClass="modalBackground" OkControlID="OkButton"
        CancelControlID="CancelButton" DropShadow="true" PopupDragHandleControlID="Panel3" />

<asp:LinkButton ID="LinkButton1" runat="server" Text="Click here to change the paragraph style" />

<asp:Panel ID="Panel1" runat="server" Style="display: none" CssClass="modalPopup">

    <asp:Panel ID="Panel3" runat="server" Style="cursor: move; background-color: #DDDDDD;
        border: solid 1px Gray; color: Black">
        <div>
            <p>
                Choose the phrase to insert:</p>
        </div>
    </asp:Panel>

    <asp:RadioButtonList ID="rbList" runat="server" />

    <p style="text-align: center;">
        <asp:Button ID="OkButton" runat="server" Text="OK" />
        <asp:Button ID="CancelButton" runat="server" Text="Cancel" />
    </p>

</asp:Panel>

1 个答案:

答案 0 :(得分:0)

我找到了更好的CKEditor模式弹出功能解决方案 - 我决定把它写成CKEditor插件。这是一种更容易和可维护的方法。

Creating a CKEditor Plugin with a Custom Dialog Window

这个答案的目的是结束旧问题。