我有下面的JavaScript代碼,用於在當前光標位置插入html文本。在HTMLEditor控件中插入HTML文本的C#等效代碼
function insertTextInHTMLEditorAtCursor() {
var editorControl = document.getElementById("Editor1");
var editPanel = editorControl.control.get_editPanel();
if (editPanel.get_activeMode() == 0) {
var designPanel = editPanel.get_activePanel(); // Achievable till here
designPanel.insertHTML("Additional text"); // C# equivalent?
}
}
上面的代碼通過使用Javascript來完美地完成這項工作。
但是,我的要求是實現相同的使用代碼背後(而不是使用JS)。
到目前爲止,我用Reflection完成了C#等價代碼的寫作,直到評論「Achievable until here」。下面是C#代碼:
PropertyInfo piEditPanel = this.testEditor.GetType().GetProperty(
"EditPanel",
System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Static |
System.Reflection.BindingFlags.Instance);
var editPanel = piEditPanel.GetValue(this.testEditor, null);
PropertyInfo piActiveMode = piEditPanel.PropertyType.GetProperty("ActiveMode");
dynamic designMode = piActiveMode.GetValue(editPanel, null);
FieldInfo fiModelPanel = piEditPanel.PropertyType.GetField("ModePanels",
BindingFlags.Static |
BindingFlags.NonPublic |
BindingFlags.Instance);
dynamic modePanels = fiModelPanel.GetValue(editPanel);
var designModel = modePanels[0]; // I get the DesignPanel
我被困在下一以下行 - 是不是在任何的.cs文件的定義insertHTML方法的原因(我下載了AJAX控件工具包的源代碼,以檢查此)。它被定義爲DesignPanel.pre.js文件中的Javascript函數。
我的問題:有沒有一種方法可以「以某種方式」調用insertHTML方法?
在此先感謝。
downvote - 爲什麼? – Ads
-1用於混合C#,HTML,AJAX,JavaScript –
你的建議是什麼呢? – Ads