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