DotNetNuke 5 在新窗口中打开 aspx

本文关键字:aspx 在新窗口中打开 DotNetNuke | 更新日期: 2023-09-27 17:56:38

我在 DNN5 中遇到的另一个问题:

我目前正在创建一个模块,该模块显示具有"编辑"列的 GridView。当用户单击"编辑"列时,它应该在新窗口中打开一个编辑表单。此编辑表单是我的模块文件夹中的 ASPX 页面,它需要一个 ModuleId 参数才能访问模块设置;该部分工作正常,我能够检索模块设置。

但是,我仍然有以下问题:

  1. 如何本地化我的标签?我尝试过 DNN 的标签控制,但没有成功。我也尝试了使用"meta:resourceKey"的asp:Label,但看起来它无法访问本地资源文件。

  2. 在我的模块中使用Aspx页面非常烦人,因为它将在DotNetNuke的上下文之外运行。有没有人知道允许我使用PortalModuleBase的方法?我很难在新窗口中显示DotNetNuke页面,只需引用要加载的控件即可。但是,当我这样做时,它会显示整个页面(因此带有导航栏、页脚等),我实际上只想显示控件。此外,我只能通过引用/DesktopModules/MyModule/Page 来打开我的 Aspx-page.aspx而不是 DNN 的 NavigateUrl 左右。

感谢您的回复。

DotNetNuke 5 在新窗口中打开 aspx

每当为页面指定控件(或 ctl=mycontrol)时,DNN 都会隐藏页面上的所有其他模块。所以

  1. 应将代码从 ASPX 页更改为 ASCX 控件。
  2. 将 ascx 控件添加到模块的模块定义的"模块控件"部分。
  3. 使用 DNN 的 NavigateURL 函数生成链接。您需要使用指定控制键的选项之一(即 NavigateURL("edit", "SkinSrc=[G]" + Globals.QueryStringEncode( DotNetNuke.UI.Skins.SkinInfo.RootSkin + "/" + Globals.glbHostSkinFolder + "/" + "No Skin" ))

在上面的示例中,"edit"是你为控件指定的控制键。

为什么不在另一个 ASCX 文件而不是 ASPX 页面中加载编辑界面?查看 http://dnnsimplearticle.codeplex.com 中的一些 C# 示例。这是一个基本的文章模块,但从 DNN 的角度来看,它做了很多有用的事情。

  1. 配合本地化 Aspx-页面在DotNetNuke的上下文之外运行,我建议你以编程方式进行。它将为您提供更多控制权,如果出现问题,您可以对其进行调试。

  2. 像EfficionDave建议使用Control Key (i.e. NavigateURL("edit", "SkinSrc=[G]" + Globals.QueryStringEncode( DotNetNuke.UI.Skins.SkinInfo.RootSkin + "/" + Globals.glbHostSkinFolder + "/" + "No Skin" ))方法

/阿德南·扎米尔

http://www.adnanzameer.com