dotnetnuke点击内容窗格上的左栏开头页面(BEST PRACTICE)

时间:2010-09-21 12:36:28

标签: dotnetnuke

好吧我在左栏创建了一个图片库模块,有一个页面viewpicturegallery.ascs。点击我想要的任何图像详细信息在中间的内容窗格中打开。我该怎么做

有人可以告诉我这个过程吗?我会做一个新页面或新模块或什么?中间的细节

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:1)

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

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

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

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

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