【发布时间】:2015-02-28 12:00:27
【问题描述】:
我正在尝试从数据库中的数据动态地将座位表绘制到网页上(asp.net-mvc 站点),第一次尝试时,我使用表格作为布置"grid" 行的一种方式和列,它看起来像这样:
在我的数据库中,我有一个名为 Seat 的表,其中包含以下 schema:
ID、行、列、名称
要呈现上述内容,我会在我的数据库中拥有这个:
| Id | Row | Col | Name |
| 1 | 2 | 2 | Seat 1 |
| 2 | 4 | 3 | Seat 2 |
| 3 | 6 | 2 | Seat 3 |
| 4 | 6 | 4 | Seat 123 |
| 5 | 8 | 2 | Seat ABC |
| 6 | 9 | 5 | Seat DEF |
所以我目前将"location" 存储为"Row" 和"Column" 在数据库中,然后通过在我的视图中使用嵌套循环来动态绘制上面的表格。蓝色项目是正在呈现座位的位置,其余是在数据库中没有任何内容的空间之间的空间 "cell"。
类似:
<table>
<tr>
<td class='space'></td>
<td class='seat'><div class='seatInfo'>Seat ABC</div></td>
<td class='space'></td>
</tr>
类在单元格的backcolor 和width 周围定义了一些基本的CSS。
现在的问题是桌子结构强制对齐(这在某些情况下是件好事,但最终是一个约束,因为我现在需要添加比其他座位更大的座位,而桌子结构实际上不允许这样做。
例如,如果我希望第 6 行第 4 列的座位“更高”,这会自动使第 6 行第 2 列的座位的高度发生变化(因为它是一张桌子),而我不这样做'不想。
所以这是Visio 中的示例平面图,我意识到我不知道如何使用这种网格结构构建这个视图,并且可能只需要完成所有座位的绝对定位,而不再有这个"row" / "col"的想法
我可以拥有超过一排或一列的座椅套,但这仍然只允许 2x width 或 2x height (相对于可以灵活地制作比“默认”大 1.5 倍的东西)座位)。
因此,我正在考虑将表格更改为仅包含 divs / spans 的矩阵,并希望在开始大规模重构之前获得一些反馈,这样我就不会遇到任何阻碍。
布置这组信息的最佳方式是什么,既不会让我太复杂,又不会遇到这个限制,这样我就可以在每个座位上有更多的布局灵活性。如果需要,我很乐意在我的数据库中存储更多信息(例如宽度或高度)。
【问题讨论】:
-
如果您想要具有统一高度的行,其中包含看起来具有不同高度的单元格,请在每个单元格内添加一个具有您想要的高度的元素并将阴影应用于该元素(不是
td)。如果您想实现任意行高的最佳拟合,我会考虑Masonry。 -
所以我的 TD 中确实有 div(我试图让问题尽可能简单,但我在问题中添加了一个 div 以使其更明确)但我仍然有问题如果有一排我有一个相邻的座位列表,并且在下一排我想在座位之间留出空间。似乎表格结构总是会导致我遇到一行或一列会影响另一行或列的间距的问题
-
这是我今天的小贴士!看看下面的答案,当你失去了桌子结构时,阅读座位表似乎变得非常复杂和困难。当一排排座位不再排成一列时,看起来很奇怪,很难看出到底是怎么回事。我会建议完全不同的东西。使用其他视觉提示来显示座位更大,例如颜色编码,或者只是在单元格中添加文本说 “1.5x 宽” 或类似的东西。看起来会干净很多,普通人也能看清楚座位表。
-
^ 随时转移我的赏金;) ........
-
既然已经提到了很多好主意,但它们似乎对你没有用,你介意展示一个基本方案,说明你想要的结果是什么样的吗?
标签: jquery html css asp.net-mvc html-table