所以即时通讯使用jquery日历插件,我创建一个对我的组织更友好的打印视图。当用户点击星期视图并按下打印此视图的按钮时,下面的编码工作完美。但如果他们选择月份视图并按下打印按钮,则会整个月份水平打印。长话短说,我如何使这个日历每七个计数新线。
<table width="100%" style="border: none">
<td style="border-style: none">
<table style="border: none">
@for (int index = 0; index < Model.Count - 1; index++)
{
var calendarDate = Model[index];
<td style="vertical-align: top">
<div style="border: thin; border-style: solid; font-weight: bold">
@calendarDate.CalDate.ToLongDateString()
</div>
@foreach (var dayEvents in calendarDate.DateEvents)
{
<div style="border: thin; border-style: solid">
@dayEvents.Department<br />
@dayEvents.Doctor<br />
@dayEvents.Comments
</div>
}
</td>
}
</table>
</td>
</table>
我可能会有一个时刻,它正好在我眼前,但我伸出手。
答案 0 :(得分:2)
您可以将模型项目分组为7个:
var model = Enumerable.Range(0, 20).Select(x => new { Text = "item " + x });
var data = model
.Select((value, index) => new { Index = index / 3, Item = value })
.GroupBy(pair => pair.Index);
然后你可以这样做:
<table>
@foreach (var group in data)
{
<tr>
@foreach (var element in group)
{
<td>@element.Item.Text</td>
}
@for (int i = 0; i < 3 - group.Count(); i++)
{
<td>empty</td>
}
</tr>
}
</table>
请参阅此线程中的Darin Dimitrov的回答:Building tables with WebMatrix
答案 1 :(得分:1)
这种方法很有效,看起来很干净。无论是周视图还是月视图,它都有效。它与原始答案的方法非常相似。所以我也会给你信用
@{
int itemIndex = 0;
int colspan = 7;
}
<table class="printCalendarTable">
<tr style="vertical-align: top; font-weight: bold">
@foreach (var item in Model)
{
if (itemIndex != 0 && itemIndex % colspan == 0)
{
@:</tr><tr style="vertical-align: top; font-weight: bold">
}
<td>@item.CalDate.ToShortDateString()
<table>
@foreach (var ocEvent in item.DateEvents)
{
<tr><td>@ocEvent.Department</td></tr>
<tr><td>@ocEvent.Doctor</td></tr>
<tr><td>@ocEvent.Comments</td></tr>
}
</table>
</td>
itemIndex++;
}
</tr>
</table>