我有一个Ajax HTML编辑器和一个Dropdown。 在选择项目时,我需要将下拉列表中所选项目的文本粘贴到AJAX HTML编辑器中的当前光标位置。 任何想法..?
答案 0 :(得分:3)
是的,在第三天结束时,我终于找到了我的问题的解决方案,在此发布,以便有人可以节省宝贵的时间重新发明轮子。
这是我的Ajax ATML编辑器:
<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
});
});
这是从Ajax HTML Editor光标位置的下拉列表中插入Text的函数。
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编辑器位于“更新”面板中,因此在部分回发后,脚本停止工作,我找到了帮助here。
希望这也适合你......干杯...... !!