Можно ли сделать список в списке в 2sx c? - PullRequest
0 голосов
/ 01 мая 2020

DNN 9.3.2 / 2sx c 10.25.2

Используя 2sx c Контент и c# Шаблоны Razor, я могу создать тип контента с некоторыми полями и включить список режим на шаблоне, чтобы я мог иметь список элементов и управлять им. Это здорово, потому что позволяет мне иметь один (1) модуль контента 2sx c на странице и перечислять столько контента, сколько мне нужно.

Однако во многих случаях мне нужен «список в list », чтобы я мог иметь повторяющийся список содержимого в повторяющемся списке содержимого и управлять дизайном с помощью шаблона, вместо того чтобы полагаться на то, что мои редакторы содержимого будут писать HTML. См. Снимок экрана для примера.

В этом проекте у меня есть 1 модуль, у которого включен «Список», и в этом модуле у меня есть 3 элемента с именем «Прожекторы», которые являются просто элементами контента. Но затем в каждом «Центре внимания» есть список «ПРЕДСЕДАТЕЛЬСКИХ СЕССИЙ», каждый из которых имеет заголовок, ссылку и определенный c стиль (цвет) для каждого элемента. В этой настройке я просто сделал раздел «PRE-CONFERENCE SESSIONS» редактором DNN (tinymce), а затем вручную отредактировал HTML, чтобы сделать каретку FontAwesome, и назначить класс CSS для стилизации каждого соответственно (важен каждый цвет) как это указывает на тип сеанса). Этот метод работает, но он громоздок и требует от меня, как разработчика, вести список, поскольку редакторы контента не знают HTML.

Я знаю, что могу разбить этот 1 модуль на 3 модуля, где каждый прожектор это содержимое заголовка, а затем ссылки PRE-CONFERENCE SESSIONS являются элементом содержимого, но я надеялся сохранить все содержимое одного модуля для удобства обслуживания. Я также сталкиваюсь с другим сценарием ios в дизайне, где действительно полезен своего рода «вложенный» (или вложенный) список содержимого.

Возможно ли сделать это в 2sx c? Или есть лучший способ добиться этого?

1 Ответ

1 голос
/ 06 мая 2020

Я сделал нечто похожее на это, где я создал Bootstrap Аккордеон, а затем в него вложили Bootstrap Аккордеон. Вот пример, может быть, это поможет. https://www.crawfordinsurancegroup.com/commercial-insurance разверните Аккордеон Target Markets, и вы увидите в нем вложенный элемент.

Для этого я использовал концепцию Content-Blocks. В основной Аккордеон я добавил еще одно поле под названием AccordionItem и сделал его Типом сущности и Типом ввода как ContentBlocks. Это дает вам возможность выбрать другую сущность 2sx c в вашем контенте, https://www.screencast.com/t/iwCn2zmH8H

В вашем шаблоне вы можете добавить foreach к l oop через элементы контента и отображать их

 @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="#collapse-@cb.EntityId" aria-expanded="true" aria-controls="collapseOne">
                                    <strong>@cb.Title</strong> 
                                </a>
                                <div class="panel-title"></div>
                                </div>


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

                        }

Итак, в моем примере я создаю новые Bootstrap аккордеоны. Вы можете ссылаться на поля, которые являются частью вложенной сущности (в моем случае это cb), и выводить их в шаблон по мере необходимости. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...