是否可以在2sxc的列表中创建一个列表?

问题描述 投票:0回答:1

DNN 9.3.2 / 2sxc 10.25.2

使用2sxc Content和c#Razor模板,我可以创建带有某些字段的内容类型,并在模板上启用列表模式,这样我就可以拥有项目列表并进行管理。这很棒,因为它使我在页面上拥有一(1)个2sxc内容模块,并根据需要列出了尽可能多的内容。

但是,在许多情况下,我需要一个“列表中的列表”,以便可以在重复的内容列表中包含重复的内容列表,并可以通过模板管理设计,而不必依靠内容编辑器来编写HTML 。有关示例,请参见屏幕截图。

"Spotlight" content items with "pre-conference sessions" sub items

在此设计中,我有1个启用了“列表”的模块,在该模块中,我有3个名为“ Spotlights”的项目,它们只是Content项目。但是,在每个“ Spotlight”中,都有一个“ PRE-CONFERENCE SESSIONS”列表,每个列表都有每个项目的标题,链接和特定样式(颜色)。在此设置中,我只是将“ PRE-CONFERENCE SESSIONS”部分设置为DNN编辑器(tinymce),然后手动编辑HTML以制作FontAwesome脱字号,并指定一个CSS类来相应地设置样式(每种颜色都很重要,因为它表明了会话类型)。此方法有效,但麻烦,因为内容编辑器不了解HTML,因此我作为开发人员需要维护列表。

我知道我可以将此1个模块拆分为3个模块,其中每个Spotlight都是Header内容,然后PRE-CONFERENCE SESSIONS链接是内容项,但是我希望将所有内容都保留在1个模块中,以便于保养。我还遇到了设计中的其他场景,在这些场景中,某种“子”(或嵌套)列表内容将非常有用。

是否可以在2sxc中执行此操作?还是有更好的方法实现这一目标?

razor dotnetnuke 2sxc
1个回答
0
投票

我做了类似的事情,我创建了一个Bootstrap手风琴,然后在其中嵌套了一个Bootstrap手风琴。这是一个例子,也许会有所帮助。 https://www.crawfordinsurancegroup.com/commercial-insurance展开目标市场手风琴,您会在其中看到一个嵌套的手风琴。

我为此使用了内容块的概念。在主手风琴中,我添加了另一个名为AccordionItem的字段,并使其成为实体类型和输入类型为ContentBlocks。这样,您便可以在内容中选择另一个2sxc实体,https://www.screencast.com/t/iwCn2zmH8H

在模板中,您可以添加一个foreach以遍历内容项并呈现它们

 @foreach(var cb in AsDynamic(Content.AccordionItem)){
                            <div class="panel panel-default">
                                <div class="panel-heading" role="tab" id="headingOne">

                                <a role="button" data-toggle="collapse" data-parent="#accordion-@(Dnn.Module.ModuleID)" href="#[email protected]" aria-expanded="true" aria-controls="collapseOne">
                                    <strong>@cb.Title</strong> 
                                </a>
                                <div class="panel-title"></div>
                                </div>


                                <div id="[email protected]" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne">
                                    <div class="panel-body">
                                        @Html.Raw(cb.Content) 
                                    </div>
                                </div>
                            </div>

                        }

因此,在我的示例中,我正在创建新的Bootstrap手风琴。您可以引用嵌套实体(在本例中为cb)一部分的字段,并在需要时将它们输出到模板中。希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.