【问题标题】:Show module on everypage with same content in DotnetNuke在 DotnetNuke 中的每个页面上显示具有相同内容的模块
【发布时间】:2009-08-12 13:58:41
【问题描述】:

我正在为 DNN 开发幻灯片放映模块,我已经完成了该模块,但我遇到了问题。我使用模块的 TabModuleID 属性来加载每个模块实例的图像,通过这个用户可以添加具有不同图片的多个模块实例。这是问题所在,当我勾选模块设置中的显示所有页面复选框时,它会显示模块在每个页面上但由于 tabModuleID 它不加载图像,它为每个模块实例提供不同的 tabModuleID,因此模块无法加载图像,它需要为每个模块实例上传图像。有没有办法实现这一点?(对不起英语不好)

【问题讨论】:

    标签: dotnetnuke dotnetnuke-module


    【解决方案1】:

    使用 ModuleId 属性而不是 TabModuleId 来存储数据。当您选择“在所有页面上显示”选项(或手动添加作为对现有模块的引用的模块实例)时,ModuleId 在实例之间共享。

    TabModuleId 应该用于存储有关数据显示方式的信息(以便您可以在主页上以一种方式显示模块,而在内部页面上以另一种方式显示模块),但数据本身应按 ModuleId 存储。

    模块的每个新实例都有一个新的 ModuleId。也就是说,每次您使用控制面板向页面添加模块时(并且不使用“添加现有模块”对话框),该实例都有自己的 ModuleId。实际上,每个页面只能有一个特定 ModuleId 的实例。同一页面上不能有两个具有相同 ModuleId 但不同 TabModuleId 的实例。

    Module ID 表示模块的实例,而Tab Module ID 表示该实例在特定页面上。 模块定义决定了在该实例中显示哪些控件的定义,而桌面模块是模块定义的 将模块添加到页面时为其创建实例。桌面模块是您在主机->模块定义页面以及控制面板的模块下拉列表中看到的,

    【讨论】:

    • 感谢您的回答,但我希望用户能够为不同的模块实例添加不同的图像,例如用户将两个模块实例添加到同一页面,他/她将上传不同的图像 foreach其中。如果我使用 ModuleID 来检索数据,它会为每个模块实例显示相同的图像,但我不想要它。
    • 我扩展了上面的答案,表明页面上每个实例的模块 ID 应该不同。
    • 谢谢,我用ModuleId代替TabModuleID解决了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    • 2021-06-07
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多