【问题标题】:DNN dynamic input to templateDNN 动态输入到模板
【发布时间】:2018-07-09 14:48:03
【问题描述】:

我开始在 DNN 中处理主题,我已经设置了三个文件 ASCX 文件,它们从数据库中组装内容。

我有一个包含这样的 ContentPane 的主模板。

<main role="main" class="main-body main-template-main-body">

<div id="ContentPane" class="content-pane" runat="server"</div>
</main>

然后,我有另一个容器被此 ContentPane 拉取。

<div class='container'>
<div class='col-3'>
<div id ="carddeck"  class="carddeck" runat="server" ></div>
  </div></div>

最后,我有另一个文件可以从服务器中提取数据。

<div class="card h-80" style="height: 18rem;">
<div class="card-body">
<h3 class="card-title"><%# Eval("Name")%></h3>
<p class="card-text"><%# Eval("description")%></p>
</div>
</div>

采用这种结构。我在想我可以通过数据库中的所有条目“循环”第三个代码块。在这一点上,我没有这个工作,我认为它必须与使第二个和第三个代码块更加动态有关。有什么帮助吗?先感谢您。

【问题讨论】:

    标签: html asp.net themes dotnetnuke ascx


    【解决方案1】:

    这通常通过放置在页面上的 MODULE 来完成,而不是在皮肤本身中。

    话虽如此,皮肤/主题文件是 ASCX 用户控件,因此您可以随意使用代码处理它们。

    像 asp:repeater 这样的东西可能效果最好

    <asp:Repeater ID="rptSomething" runat="server">
        <ItemTemplate>
    
    <div class="card h-80" style="height: 18rem;">
    <div class="card-body">
    <h3 class="card-title"><%# Eval("Name")%></h3>
    <p class="card-text"><%# Eval("description")%></p>
    </div>
    </div>
    
     </ItemTemplate>
    </asp:Repeater>
    

    然后在 ASCX 的代码隐藏文件 (ascx.cs) 中,您可以加载数据源并将其绑定到转发器控件。

    【讨论】:

      【解决方案2】:

      您可以使用 DNN 提供的 Module 概念。您可以在皮肤中添加一个内容窗格,然后您就可以将您的模块添加到页面中。您只需编写 ascx 文件中给出的代码,就可以通过单击给定内容窗格中的添加模块选项将模块添加到您的页面。

      <main role="main" class="main-body main-template-main-body">
      
      <div id="ContentPane" class="content-pane" runat="server"</div>
      
      </main>
      

      您可以在您将创建的用于制作自定义模块的不同项目中添加所有其他内容。在 .ascx 控件的 .cs 文件中添加您的逻辑,该文件将包含您用于数据库调用的所有代码。

      之后,您可以将您创建的模块安装到您网站的扩展程序中,以便您可以使用它。只需将该模块添加到您的页面,您就可以在整个站点中使用相同的模块。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-29
        • 2016-04-23
        • 2021-10-31
        • 2023-04-08
        • 1970-01-01
        • 2020-09-02
        • 2011-10-10
        相关资源
        最近更新 更多