【发布时间】:2017-06-28 06:49:15
【问题描述】:
在我的应用程序中,我有一个视图,谁的任务是显示与该项目相关的项目和价格。
这是我的视图呈现表格结果的方式:
@if (Model.Count > 0)
{
<table>
<tr>
<th>
@Html.ActionLink("Object Name", "BrowseObjectList", new { _sortOrder = ViewBag.CardNameSortParm })
</th>
<th>
Object Image
</th>
<th>
@Html.ActionLink("Object Provider Name", "BrowseObjectList", new { _sortOrder = ViewBag.ObjectProviderNameSortParm })
</th>
<th>
@Html.ActionLink("Highest Price", "BrowseObjectList", new { _sortOrder = ViewBag.HighestPriceSortParm })
</th>
<th>
@Html.ActionLink("Price Date", "BrowseObjectList", new { _sortOrder = ViewBag.PriceDateSortParm })
</th>
</tr>
@for (int i = 0; i < Model.Count; i++)
{
var className = i%2 == 0 ? "even" : "odd";
<tr class="@className">
<th rowspan="5">
@Html.ActionLink(Model[i].m_Obj.m_ObjName, "ObjectPriceLists", new { id = Model[i].m_Obj.m_ID}, new {@class = "NavLink" })
</th>
<th rowspan="5">
@Html.Image(Model[i].m_Obj.m_ObjImageLink, Model[i].m_Obj.m_ObjName, null)
</th>
@for (int j = 0; j < Model[i].m_ItemPriceLists.Count; j++)
{
<tr class="@className">
<td style="height: 100%">@Html.DisplayFor(item => item[i].m_ItemPriceLists[j].m_Provider.m_ProviderName)</td>
<td style="height: 100%">@Html.DisplayFor(item => item[i].m_ItemPriceLists[j].m_PriceHigh)</td>
<td style="height: 100%">@Html.DisplayFor(item => item[i].m_ItemPriceLists[j].m_PriceListDate)</td>
</tr>
}
</tr>
}
</table>
}
现在,当视图形状达到我想要的样子时,它会呈现“Ok”,如下所示:
Object Name Object Image Provider Highest Price Price Date
Prov 1 1 2013-05-03
Prov 2 2 2013-05-03
Object 1 Image Prov 3 3 2013-05-03
Prov 4 4 2013-05-03
现在这是 WANTED 结果。 “对象名称”列是单列,就像在 excel 页面中一样,图像也是单列。每个“供应商/最高价格/价格日期”都是与对象名称和图像同一行上的单行。但是我所拥有的是这样的形状:
Object Name Object Image Provider Highest Price Price Date
Prov 1 1 2013-05-03
Prov 2 2 2013-05-03
Prov 3 3 2013-05-03
Object 1 Image Prov 4 4 2013-05-03
您需要在这里看到的是,第 4 条提供程序行调整了高度以匹配图像和对象的比例。 “对象 1”列和“图像”取图像的高度,但高度在每四个提供者之间不均分。只有第 4 次调整大小以填充剩余空间。
现在我知道我的 html 布局可能很糟糕,因为我是从 html 格式开始的,我想知道如何正确地调整它的形状,以使每行的大小均匀。
编辑
我的情况很难描述,但这里有一个我想要什么和我得到什么的 excel 演示:
【问题讨论】:
-
也许你的数据库中有一些空白数据,所以它实际上看起来是正确的,它只是插入了 2 个额外的不包含数据的行。调试,在你建模绑定之前,看看集合实际包含什么。您也不需要指定表格中每个单元格的高度。
-
好的,我去看看,告诉你我发现了什么。
-
如果你看看你是如何渲染你的 html 的,你就是在
中渲染 。将最后一个 向上移动,就在@for (int j行的上方 -
哦@MajorByte 是对的,我没有注意到这一点。 那很可能是你的问题
-
是的,我是这么认为的……但到目前为止,这是最接近我实际想要渲染的内容。这就是为什么我在
中使用
标签: html asp.net-mvc html-table