【发布时间】:2016-07-20 21:48:52
【问题描述】:
我有一个模块,它是一个元素列表。我希望能够单击一个元素并转到一个显示详细信息和内容的控件。
问题是当我去那个控件时,分配的页面模板被改变了;不知道它是否正常行为,如果是:我如何强制分配模板?
注意:我不想更改管理模板来实现这一点
希望它是足够的信息,并在未来帮助一些人。
提前致谢!
【问题讨论】:
标签: asp.net content-management-system dotnetnuke
我有一个模块,它是一个元素列表。我希望能够单击一个元素并转到一个显示详细信息和内容的控件。
问题是当我去那个控件时,分配的页面模板被改变了;不知道它是否正常行为,如果是:我如何强制分配模板?
注意:我不想更改管理模板来实现这一点
希望它是足够的信息,并在未来帮助一些人。
提前致谢!
【问题讨论】:
标签: asp.net content-management-system dotnetnuke
我发现的最佳方法是“Dynamically Loaded Controls”
开发人员可以在他们的模块上使用占位符控件:
<asp:PlaceHolder id="phDynamicPlaceHolder" runat="server"></asp:PlaceHolder>
并将控件动态加载到占位符中。
Select Case Me.rblDynamicControl.SelectedValue
Case 1
DynamicPage = DotNetNuke.Common.ResolveUrl(Me.TemplateSourceDirectory & "/DynamicControls/control1.ascx")
Case 2
DynamicPage = DotNetNuke.Common.ResolveUrl(Me.TemplateSourceDirectory & "/DynamicControls/control2.ascx")
End Select
Dim objModule As Entities.Modules.PortalModuleBase = CType(Me.LoadControl(DynamicPage), DotNetNuke.Entities.Modules.PortalModuleBase)
If Not objModule Is Nothing Then
objModule.ModuleConfiguration = Me.ModuleConfiguration
phDynamicPlaceHolder.Controls.Add(objModule)
End If
【讨论】: