dotnetnuke单击内容窗格上的左栏打开页面(最佳实践)

dotnetnuke单击内容窗格上的左栏打开页面(最佳实践),dotnetnuke,Dotnetnuke,好的,我已经在左栏创建了一个图片库模块,有一个页面viewpicturegallery.ascs。在单击任何图像时,我希望它的细节在中间的内容窗格中打开。我该怎么做呢 有人能告诉我这个过程吗?我会做一个新的页面或者新的模块或者什么?有关中间部分的详细信息,请参见简短回答:使用多个DNN模块,并通过查询字符串参数、回发或IModuleCommunicator在它们之间进行通信。根据您的需求,可以仅使用文本/HTML模块和客户端工具(如jQuery和插件)来实现details视图 有关使用多个互连D

好的,我已经在左栏创建了一个图片库模块,有一个页面viewpicturegallery.ascs。在单击任何图像时,我希望它的细节在中间的内容窗格中打开。我该怎么做呢


有人能告诉我这个过程吗?我会做一个新的页面或者新的模块或者什么?有关中间部分的详细信息,请参见简短回答:使用多个DNN模块,并通过查询字符串参数、回发或IModuleCommunicator在它们之间进行通信。根据您的需求,可以仅使用文本/HTML模块和客户端工具(如jQuery和插件)来实现details视图

有关使用多个互连DNN模块的更多详细信息:

您可以在.dnn清单部分中定义多个模块。 这样,每个互连的子模块都是同一安装包的一部分,但在控制面板的“模块”下拉列表中,在中只有一个可见的模块。将此复合模块添加到页面将添加所有子模块,但您可以独立于其他子模块删除其中任何一个子模块

您应该知道,直接继承PortalModuleBase的每个子模块都有自己的设置对象。如果要共享设置,则必须从继承PortalModuleBase的共享父ascx继承,或编写一个函数从同一页面中的另一个模块读取设置(此处有相同的ModuleID帮助)


模块之间的通信可以基于querystring参数,建议您打开详细信息视图,以便即使gallery模块不存在也可以打开它。不过,回发允许您使用UpdatePanel。同一页面中的模块也可以使用IModuleCommunicator接口进行基于事件的通信。例如,我使用带有“月视图日期选择器”模块和“事件列表视图”模块的事件日历模块。列表视图模块通过IModuleCommunicator将活动日与monthview进行通信。这样,我可以在datepicker中用粗体字强调活动日。有关IModuleCommunicator的更多详细信息,请参阅Rafe Kemmis的。

简短回答:使用多个DNN模块,并通过查询字符串参数、回发或IModuleCommunicator在它们之间进行通信。根据您的需求,可以仅使用文本/HTML模块和客户端工具(如jQuery和插件)来实现details视图

有关使用多个互连DNN模块的更多详细信息:

您可以在.dnn清单部分中定义多个模块。 这样,每个互连的子模块都是同一安装包的一部分,但在控制面板的“模块”下拉列表中,在中只有一个可见的模块。将此复合模块添加到页面将添加所有子模块,但您可以独立于其他子模块删除其中任何一个子模块

您应该知道,直接继承PortalModuleBase的每个子模块都有自己的设置对象。如果要共享设置,则必须从继承PortalModuleBase的共享父ascx继承,或编写一个函数从同一页面中的另一个模块读取设置(此处有相同的ModuleID帮助)


模块之间的通信可以基于querystring参数,建议您打开详细信息视图,以便即使gallery模块不存在也可以打开它。不过,回发允许您使用UpdatePanel。同一页面中的模块也可以使用IModuleCommunicator接口进行基于事件的通信。例如,我使用带有“月视图日期选择器”模块和“事件列表视图”模块的事件日历模块。列表视图模块通过IModuleCommunicator将活动日与monthview进行通信。这样,我可以在datepicker中用粗体字强调活动日。有关IModuleCommunicator的更多详细信息,请参阅Rafe Kemmis。

以下是您可以实现的一些步骤:

  • 在单个模块中创建两个控件,用于显示图像和单个图像的详细信息,并创建两个不同的定义,每个定义都有一个默认视图控件作为要显示的控件。

    当您在页面中安装模块时,它将在内容页面中显示两个定义控件,您可以在任何窗格中重新排列它们。
  • 在dotnetnuke中搜索
    模块间通信
    ,并从网络中获取样本
  • 您会发现有两个模块定义参与了通信。您的列表控件将是
    IModuleCommunication
    ,详细信息视图将是
    IModuleListner
  • 这就是你如何实现你想要的东西


    如果您还有其他问题,请告诉我。

    以下是您可以完成的一些步骤:

  • 在单个模块中创建两个控件,用于显示图像和单个图像的详细信息,并创建两个不同的定义,每个定义都有一个默认视图控件作为要显示的控件。

    当您在页面中安装模块时,它将在内容页面中显示两个定义控件,您可以在任何窗格中重新排列它们。
  • 在dotnetnuke中搜索
    模块间通信
    ,并从网络中获取样本
  • 您会发现有两个模块定义参与了通信。您的列表控件将是
    IModuleCommunication
    ,详细信息视图将是
    IModuleListner
  • 这就是你如何实现你想要的东西


    如果您有任何其他问题,请告诉我。

    好,那么您确认没有办法在同一模块中使用页面构建类似的内容,因此我的构建模块的方法将是多个模块?是的,模块中的每个页面(ascx控件)都呈现在同一容器中。如果你想让gallery控件处于不同的状态