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