Dotnetnuke 从外部DNN解决方案引用DNN编辑器

Dotnetnuke 从外部DNN解决方案引用DNN编辑器,dotnetnuke,dotnetnuke-module,radeditor,Dotnetnuke,Dotnetnuke Module,Radeditor,我正在构建一个DotNetNuke模块,需要包含html编辑器。但是,我的模块位于一个独立的解决方案中,xcopy将安装到我的DNN中(我遵循VisualStudio项目模板制作模块)。我看到的所有示例代码都引用了文本编辑器,如下所示: <%@ Register TagPrefix="dnn" TagName="TextEditor" Src="~/controls/TextEditor.ascx" %> <dnn:TextEditor ID="txtDescription"

我正在构建一个DotNetNuke模块,需要包含html编辑器。但是,我的模块位于一个独立的解决方案中,xcopy将安装到我的DNN中(我遵循VisualStudio项目模板制作模块)。我看到的所有示例代码都引用了文本编辑器,如下所示:

<%@ Register TagPrefix="dnn" TagName="TextEditor" Src="~/controls/TextEditor.ascx" %>

<dnn:TextEditor ID="txtDescription" runat="server" Width="100%" Height="300px" />
这种方式很管用,但大多数工具栏按钮都乱七八糟


任何帮助都将不胜感激

我假设您正在为dotnetnuke开发一个自定义模块,您可以在codeplex.com上查看源代码中的示例实现。是包含相同示例的控件


基本上,您只需要引用
DotNetNuke.dll和DotNetNuke.WebControls.dll
就可以使它在ascx声明中工作。

经过一番咒骂和抨击之后,我找到了简单的答案,即只实例化usercontrol而不是editor-server控件

var control = this.LoadControl("~/controls/TextEditor.ascx");
control.ID = "txtDescription";
phEditor.Controls.Add(control);
找到了一个更好的答案 来自赫里斯托·埃夫蒂莫夫

他的方法允许您向文本编辑器添加属性

他的代码:

一种方法是:

    DotNetNuke.UI.UserControls.TextEditor editor = (DotNetNuke.UI.UserControls.TextEditor)LoadControl("~/controls/texteditor.ascx");       
editor.ID = "Editor1";
this.Controls.Add(editor);
    Dim txtDescription As DotNetNuke.UI.UserControls.TextEditor = DirectCast(LoadControl("~/controls/texteditor.ascx"), DotNetNuke.UI.UserControls.TextEditor)
        txtDescription.ID = "txtAOneDescription" & intControlCounter.ToString
        txtDescription.HtmlEncode = False
我在VB.NET中的代码如下所示:

    DotNetNuke.UI.UserControls.TextEditor editor = (DotNetNuke.UI.UserControls.TextEditor)LoadControl("~/controls/texteditor.ascx");       
editor.ID = "Editor1";
this.Controls.Add(editor);
    Dim txtDescription As DotNetNuke.UI.UserControls.TextEditor = DirectCast(LoadControl("~/controls/texteditor.ascx"), DotNetNuke.UI.UserControls.TextEditor)
        txtDescription.ID = "txtAOneDescription" & intControlCounter.ToString
        txtDescription.HtmlEncode = False