Collapse Bootstrap Asp/Net Core не работает

81
11 августа 2019, 05:00

Проблема в следующем, не могу понять по чему при переборе появляется две кнопки (так как сообщения два), название (Title) тоже верное в них, а контент появляется только при нажатии на первую кнопки.

То есть при нажатии на первую (верхнюю) кнопку с заголовком открывается сообщение. А, при нажатии на вторую кнопку (ниже) открывается то же первое сообщение.

   @foreach (var item in Model)
    {
        if (item.Status == "New")
        {
            <div class="panel panel-default">
                <div class="panel-heading">
                    <a class="btn btn-primary" data-toggle="collapse" href="#imageGallery" style="width: 100%">
                        @Html.DisplayFor(modelItem => item.Title)
                    </a>
                </div>
                <div class="panel-body collapse" id="imageGallery">
                    @Html.DisplayFor(modelItem => item.Title)<br />
                    @Html.DisplayFor(modelItem => item.Content) <br />
                    @Html.DisplayFor(modelItem => item.Employee.Name) <br />
                    @Html.DisplayFor(modelItem => item.Title) <br />
                    @Html.DisplayFor(modelItem => item.DateFrom)
                </div>
            </div>
        }
    }
Answer 1

Элементарно. Вы для всех моделей провайдите одинаковый айдишник #imageGallery. Как это работает: при нажатии на кнопку происходит магия, вытягивается селектор из href (у нас это #imageGallery). Далее по селектору берется секция (возмется первая секция по этому айдишнику).

Решение: рендерите уникальный айдишник для каждой секции:

@foreach (var item in Model)
{
    if (item.Status == "New")
    {
        <div class="panel panel-default">
            <div class="panel-heading">
                <a class="btn btn-primary" data-toggle="collapse" href="#imageGallery-@item.Title" style="width: 100%">
                    @Html.DisplayFor(modelItem => item.Title)
                </a>
            </div>
            <div class="panel-body collapse" id="imageGallery-@item.Title">
                @Html.DisplayFor(modelItem => item.Title)<br />
                @Html.DisplayFor(modelItem => item.Content) <br />
                @Html.DisplayFor(modelItem => item.Employee.Name) <br />
                @Html.DisplayFor(modelItem => item.Title) <br />
                @Html.DisplayFor(modelItem => item.DateFrom)
            </div>
        </div>
    }
}

Либо если у вас есть айдишник в модели - лучше используйте его вместо item.Title

Доки:

  • https://getbootstrap.com/docs/4.2/components/collapse/#accordion-example
READ ALSO
Экспорт Laravel

Экспорт Laravel

мне известно что возможен экспорт из таблицы <table> в excelВопрос состоит в том что возможен ли такой же экспорт только в файл для приложения...

87
нужно логировать все запросы, что меняют структуру или даные БД

нужно логировать все запросы, что меняют структуру или даные БД

Знаю, что задачка немного велосипед, нужна она для контроля версий БД на проектах где нет миграций

106
Поиск и перенос текста между полями в MSQL

Поиск и перенос текста между полями в MSQL

Задача перенести текст с одного поля в другой в одной таблице базы MYSQL

108
Вёрстка, подскажите по PSD

Вёрстка, подскажите по PSD

Скинули тестовое задание, заверстать псдешку, не могу понять, что хотят от секций, если есть у кого минута времени, объясните пожалуйстамои...

97