我是DotNetNuke新手。请保持温柔。我正在使用“DotNetNuke 6编译模块”模板来构建我的模块。我已经在项目中拥有View.ascx控件,并添加了另一个名为test.ascx的控件。

我的问题是:如何在添加模块的不同页面中显示不同的 View 。 (如果有可能的话)
例如
在说default.aspx页上显示View.ascx,然后在default2.aspx页上显示test.ascx用户控件?

如果这不可能,则意味着我需要为每个ascx控件使用不同的Visual Studio项目。当然不会。

最佳答案

阿童木

选项1:

您需要转到主机>扩展>编辑扩展>扩展模块定义,然后单击添加控件。

在这里,您必须选择ascx控件,并提供键作为任何字符串。假设您提供了test键,选择了用户控件并将控件类型选择为view并保存了它。

现在,从 View 中,您可以使用以下代码导航到新添加的控件:DotNetNuke.Common.Globals.NavigateUrl(TabId,"test","mid="+ModuleID);
这将重定向页面并使用test.ascx加载页面。

当您要默认显示view.ascx并希望在执行某些操作时切换 View 并显示test.ascx时,可以使用这种选项。此处的缺点是,当您切换到test.ascx时,添加到页面的所有其他模块将不可见。

选项2:

您必须在模块中创建一个新定义。为此,转到主机>扩展>编辑模块>展开模块定义>单击添加并添加新定义。添加定义后,您可以添加test.ascx并在没有任何键的情况下将 View 控件添加到定义中。

完成以上操作后,如果您删除模块并将其再次添加到页面,它将显示在页面中添加的两个模块。这是两个定义。查看博客模块定义,以获取多个定义的工作方式示例。

当您希望从同一模块中同时显示多个 View 控件时,使用此选项。

我希望这有帮助。如果您还有其他问题,请告诉我。

关于c# - DNN : Using multiple web user controls in one module and showing different controls in different pages,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18755475/

10-11 13:11