Asp.net mvc 4 每7个事件重新创建一次表

Asp.net mvc 4 每7个事件重新创建一次表,asp.net-mvc-4,razor,fullcalendar,Asp.net Mvc 4,Razor,Fullcalendar,因此,我使用jquery日历插件并创建了一个对我的组织更为友好的视图。当用户点击周视图并点击“打印此视图”按钮时,下面的编码工作得非常完美。但如果他们选择月视图并点击打印按钮,它会水平打印整个月。长话短说,我如何使这个日历板条箱每七个计数新的一行 <table width="100%" style="border: none"> <td style="border-style: none"> <table style="border: non

因此,我使用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>

@对于(int index=0;index
@dayEvents.Doctor
@dayEvents.评论 } }

我可能有片刻的时间,它就在我眼前,但我伸出了手。

您可以将您的模型项目分为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>

@foreach(数据中的var组)
{
@foreach(组中的var元素)
{
@element.Item.Text
}
@对于(int i=0;i<3-group.Count();i++)
{
空的
}
}

请参见Darin Dimitrov在这篇文章中的回答:

这是一种有效的方法,看起来相当干净。无论是在周视图还是月视图中,它都可以工作。这与您在原始答案上的方法非常相似。所以我也会给你荣誉

@{

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>
@{
int itemIndex=0;
int colspan=7;
}
@foreach(模型中的var项目)
{
if(itemIndex!=0&&itemIndex%colspan==0)
{
@:
}
@item.CalDate.ToShortDateString()的
@foreach(item.DateEvents中的变量ocEvent)
{
@ocEvent.部门
@ocEvent,医生
@ocEvent.评论
}
itemIndex++;
}

如果选择了周视图而不需要分组,那么这段代码将如何应用?您可以根据是否选择周视图,在if语句中组合两组代码(您的和我的)。