ASP.NET MVC Razor设计表格并使用行合并

3

我该如何在 Razor 视图中使用 rowspan 合并表格中的单元格?我希望自动合并日期和链接单元格,以便每个给定日期只有一个单元格,而不是每行都有一个“日期”和“链接”单元格。我尝试使用条件来解决它,但我要么得到错误(我猜是语法问题),要么得到与我想要的不同的结果(下面是示例代码)。

<tbody>
    @foreach (var dayIncidentPair in Model.List)
                   {
                       <tr>
                           <td rowspan="@dayIncidentPair.Item3.Count()">Finded segment in @dayIncidentPair.Datetime.ToString("d")</td>
                           <td rowspan="@dayIncidentPair.Item3.Count()"><a href="~/path">Link here</a></td>
                           @{int i = 0; }
                           @foreach (var segmentInfo in dayIncidentPair.Item3)
                           {
                               if (i > 0)
                               {
                                   <text></tr>
                                   <tr></text>
                               }
                               <td>@segmentInfo.MValue1.Time.ToString("t")</td>
                               <td>@String.Format("{0:f1}", @segmentInfo. MValue1.Value)</td>
                               <td>@segmentInfo.MValue1.Type</td>
                               <td>@segmentInfo.MValue2.Time.ToString("t")</td>
                               <td>@String.Format("{0:f1}", @segmentInfo.MValue2.Value)</td>
                               <td>@segmentInfo.MValue2.Type</td>
                               i++;

                           }
                           </tr>
                   }

    </tbody>

我希望得到类似这样的东西

╔════════════╦════════════╦═════════╦══════════╦═════════╦═════════╦══════════╦═════════╗
║    Date    ║    Link    ║ Time V1 ║ Value V1 ║ Type V1 ║ Time V2 ║ Value V2 ║ Type V2 ║
╠════════════╬════════════╬═════════╬══════════╬═════════╬═════════╬══════════╬═════════╣
║ 25.01.2017 ║    Link    ║         ║          ║         ║         ║          ║         ║
║            ║   to XXX   ║    9:101.1  ║     A   ║    9:155.3  ║     Q   ║
║            ║            ║         ║          ║         ║         ║          ║         ║
║            ╠            ╬═════════╬══════════╬═════════╬═════════╬══════════╬═════════╣
║            ║            ║         ║          ║         ║         ║          ║         ║
║            ║            ║    9:302.0  ║     B   ║   11:304.1  ║     A   ║
║            ║            ║         ║          ║         ║         ║          ║         ║
╠════════════╬════════════╬═════════╬══════════╬═════════╬═════════╬══════════╬═════════╣
║ 26.01.2017 ║ Linkto XYX ║         ║          ║         ║         ║          ║         ║
║            ║            ║   11:506.2  ║     A   ║   14:275.3  ║     P   ║
║            ║            ║         ║          ║         ║         ║          ║         ║
╠════════════╬════════════╬═════════╬══════════╬═════════╬═════════╬══════════╬═════════╣
║ 27.01.2017 ║ Linkto XXY ║         ║          ║         ║         ║          ║         ║
║            ║            ║    8:032.5  ║     Q   ║    9:472.5  ║     A   ║
║            ║            ║         ║          ║         ║         ║          ║         ║
║            ╠            ╬═════════╬══════════╬═════════╬═════════╬══════════╬═════════╣
║            ║            ║         ║          ║         ║         ║          ║         ║
║            ║            ║   13:214.6  ║     A   ║   14:534.3  ║     C   ║
║            ║            ║         ║          ║         ║         ║          ║         ║
║            ╠            ╬═════════╬══════════╬═════════╬═════════╬══════════╬═════════╣
║            ║            ║         ║          ║         ║         ║          ║         ║
║            ║            ║   15:107.4  ║     C   ║   15:457.3  ║     B   ║
║            ║            ║         ║          ║         ║         ║          ║         ║
╚════════════╩════════════╩═════════╩══════════╩═════════╩═════════╩══════════╩═════════╝

请参考以下答案的示例:这个回答 - user3559349
我认为在这种情况下,我会使用嵌套表格而不是使用 rowspan。 - nurdyguy
@nurdyguy 感谢您的回复,但在我看来,我们已经不是千禧年初了。 - P.Milan
1个回答

2

我从另一个角度看待了这个问题,找到了一个解决方案。显然,通过IF条件标记HTML标签存在问题。

因此,解决方案不是使用标签<text>,而是使用@:

<tbody>
    @foreach (var dayIncidentPair in Model.List)
                   {
                       <tr>
                           <td rowspan="@dayIncidentPair.Item3.Count()">Finded segment in @dayIncidentPair.Datetime.ToString("d")</td>
                           <td rowspan="@dayIncidentPair.Item3.Count()"><a href="~/path">Link here</a></td>
                           @{int i = 0; }
                           @foreach (var segmentInfo in dayIncidentPair.Item3)
                           {
                               if (i > 0)
                               {
                                   @:</tr><tr>
                               }
                               <td>@segmentInfo.MValue1.Time.ToString("t")</td>
                               <td>@String.Format("{0:f1}", @segmentInfo...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接