2

Ajax HTML エディターとその上にドロップダウンがあります。ドロップダウンからアイテムを選択すると、ドロップダウンで選択されたアイテムのテキストがAJAX HTMLエディターの現在のカーソル位置に貼り付けられます。何か案は..?

4

1 に答える 1

3

ええ、3日目の終わりに、私はついに私の問題の解決策を手に入れました。誰かが車輪の再発明から貴重な時間を節約できるように、ここに投稿しました。

これは私のAjaxATMLエディターです。

<Ajax:Editor ID="EdtrHTML" runat="server" />

ドロップダウンから選択したテキストをHTMLエディターの現在のカーソル位置に貼り付けたいので、ドロップダウンの「変更」イベントでテキスト(InsertAtCursor)を挿入する関数を呼び出しています。

関数InsertAtCursorのパラメーターとして、HTMLエディターのレンダリング中に作成されるIFrameのIDを渡します。

 $(document).ready(function () {
            $('#<%:DropDownID.ClientID%>').change(function () {
            var ddltext = $('#<%:DropDownID.ClientID%> option:selected').text();
            var ddltext = ' [' + ddltext + '] '
            InsertAtCursor(idofHTMLEditorIFrame, ddltext);//Function for Insertion
        });
    });

これは、AjaxHTMLエディターのカーソル位置にあるドロップダウンからテキストを挿入する機能です。

 function InsertAtCursor(myField, myValue) {

        if (document.selection) {
            myField.focus();
            sel = document.selection.createRange();
            sel.text = myValue;
        }

        else if (myField.selectionStart == 0 || myField.selectionStart == '0') {
            var startPos = myField.selectionStart;
            var endPos = myField.selectionEnd;
            myField.value = myField.value.substring(0, startPos) + myValue +
                        myField.value.substring(endPos, myField.value.length);
        }
        else {
             myField.value += myValue;
        }
    } 

私の場合、Ajaxエディターが更新パネル内にあったため、部分的にポストバックした後、スクリプトが機能しなくなり、ここでヘルプが見つかりました。

これがあなたにもうまくいくことを願っています...乾杯..!!

于 2012-05-11T16:10:55.343 に答える