gpt4 book ai didi

twitter-bootstrap - 使用带有 foreach 循环的 Bootstrap 模式

转载 作者:行者123 更新时间:2023-12-03 23:40:52 25 4
gpt4 key购买 nike

我有一个 foreach 循环,它从数据库中循环遍历我的文档,它只提取图像然后我的页面上每行有 4 个图像,我想单击一个它打开带有图像的模态,单击另一个同样的。所以我有这个设置:

@foreach (var item in Model.DocumentList)
{
// Below I am currently using just a ID for modal (which i know is wrong)
<div class="col-lg-3 col-md-4 col-xs-6 thumb">
<a class="thumbnail" data-toggle="modal)" data-target="#myModal" title="@item.FileDescription">
@Html.DocumentUrl(item.FileUrl, false)
</a>
<span class="col-xs-12" style="text-align:center;">@item.CreatedDate.ToShortDateString()</span>
</div>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Uploaded - @item.CreatedDate.ToShortDateString()</h4>
</div>
<div class="modal-body">
@Html.DocumentUrl(item.FileUrl, true)
<div class="row">
<div class="col-md-12">
<p>
@item.FileDescription
</p>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn banner-background white-text">Download</button>
</div>
</div>
</div>
</div>
}

我可以看到为什么 data-target id 模式不起作用,当我悬停它时我看到不同的标题,但是当我点击 img 即使我点击 img 4 它也只显示第一个 img,第一个标题等我怎样才能做到这一点,以便它与每个项目正常工作?将 id modal 更改为 class 也无济于事。

最佳答案

在您的特定解决方案中,您对 Model.DocumentList 中的每个项目使用相同的模式片段。例如:

<a class="thumbnail" data-toggle="modal)" data-target="#myModal" title="@item.FileDescription"> @Html.DocumentUrl(item.FileUrl, false)</a>

如果总是切换 id 为 myModal 的模式。每当您单击 DocumentUrl 时,页面呈现的第一个模式就会胜出。您实际上是在创建 4 个相同的模式,唯一的区别是 Url 和 Item,因此您遇到了奇怪的行为。

要完成您想要完成的事情(至少在您解决问题的方式上),您可以通过将 id 与您的项目的值连接起来,在每个模式上使用一个唯一的 id。例如:

<a class="thumbnail" data-toggle="modal)" data-target="#myModal-@(item.id)" title="@item.FileDescription"> @Html.DocumentUrl(item.FileUrl, false)</a>

<div class="modal fade" id="myModal-@(item.id)" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"><!-- modal body etc --></div>

通过使用模型的 id,您将为 Model.Document 列表中的每个项目生成一个唯一的 HTML 模式和一个唯一的数据目标来匹配。这将通过使用 4 个单独的模态来完成您尝试做的事情。

如果您想稍后重构它,请提供一个小的替代建议。您始终可以在页面上加载单个模态并使用 JavaScript 修改模态的主体。这将通过仅使用单个模态而不是 4 个单独的模态片段来清理 HTML。例如,您将在页面中加载一个空模式并使用循环生成具有正确数据属性的链接。这样你的代码是 DRY 并且你的 HTML 是干净的。

编码愉快!

关于twitter-bootstrap - 使用带有 foreach 循环的 Bootstrap 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25261877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com