【问题标题】:displaying multiple ascx in dotnetnuke在 dotnetnuke 中显示多个 ascx
【发布时间】:2014-09-26 08:55:26
【问题描述】:

我是 dotnetnuke 的新手编程模块。

此时我只使用 view.ascx 来显示我的逻辑。 我需要根据登录用户和附加用户角色显示不同的视图。我可以通过设置一些可见和不可见的控件来做到这一点,但我认为这不是正确的方法并且使代码不必要的复杂。

我在 stackoverflow 中遇到了一个较早的问题 (DNN: Using multiple web user controls in one module and showing different controls in different pages)

但还有一些问题:

当我想在单独的 ascx 中设计一个新视图时,我必须在 vs2013 中添加一个新的 webformuser 控件? 我认为链接中提到的使用占位符的解决方案将解决我的问题。但是我需要哪些步骤才能将当前使用“view.ascx”的解决方案转换为使用占位符的解决方案?

我需要先创建一个新的 webusercontrol 并将其命名为“MasterControl.ascx”并将占位符控件放入其中? 我需要为每个视图另外创建一个新的 webusercontrol 吗? view.ascx 呢?我不再需要它了?什么是控制路径?是用户控件所在的路径吗?

这是下面的布局吗:

MasterControl.ascx 调用 userview1.ascx userview2.ascx ... 用户视图k.ascx

如何注册“MasterControl.ascx”?编辑时我在当前模块中没有看到“添加控件”?我将 DNN 7.2.x 与 Cristoc 插件一起使用。

我必须用 userview1 等替换 child1 吗?当我提供条件时,会显示相应的 userview.ascx?

我是一个完整的新手,所以我需要一步一步的“食谱食谱”如何转换我当前的模块,只使用一个“view.ascx”方法和更灵活的多 ascx 解决方案。

提前致谢,

问候,

亨克

上面链接中提到的代码的副本。

   string childControl;
  switch (condition)
  {
   case "condition1":
    childControl = ControlPath + Child1.ascx";
    break;
   case "condition2":
    childControl = ControlPath + Child2.ascx";
    break;      
  ...more conditions...
  }
  PortalModuleBase objModule = (PortalModuleBase)this.LoadControl(childControl);
  if ((objModule != null))
  {
   myPholder.Controls.Clear();
   objModule.ModuleConfiguration = this.ModuleConfiguration;
   myPholder.Controls.Add(objModule);
  }

【问题讨论】:

    标签: dotnetnuke ascx


    【解决方案1】:

    如果您只有几件事情要隐藏或显示,那么您可以使用<asp:Panels>。您可以根据计算的属性或其他逻辑设置可见性;例如,我使用了IsSuperUser 属性。

    ASCX 文件:

    <asp:Panel id="pnlSomeDeclarativeCode" runat=server>
        <h1>Hide or show me</h1>
    </asp:Panel>
    

    在您的代码隐藏文件中:

    private Initialise()
    {
        pnlSomeDeclarativeCode.Visabilty = UserInfo.IsSuperUser;
    }
    

    【讨论】:

    • 谢谢,但它不仅仅是几个控件,更多不同的屏幕。我真的需要在多个 ascx 中分隔表单
    • 在这种情况下,您可以使用扩展名的唯一键创建多个模块控件,每个都指向自己的 .ascx 文件。然后,您可以根据需要使用 Globals.NavigateUrl() 或 EditUrl() 导航到每个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多