Css / C#使元素"消失"在印刷品上

时间:2014-06-24 12:10:47

标签: c# html css asp.net-mvc printing

我有一个非常简单的视图,它为Controler移交的每个对象呈现子视图。每个对象的信息不是单独页面上的打印。所有这一切都很好。但是,我希望页面顶部没有打印标题。使用Css我使用这个工作,但第一个打印页面将是一个空白页面。如果我刚刚删除标题,则空白页会再次消失。有没有办法在不打印空白页面的情况下使用标题?

查看:

@model IQueryable<Event>

@{
    ViewBag.Title = "Druckansicht";
}

@section Scripts {
    <script type="text/javascript">
        $(document).ready(function () {
            window.print();
        })
    </script>
}

<h1 class="no-print">Deine Druckansicht vom @ViewBag.StartDate bis zum @ViewBag.EndDate</h1>

@foreach (Event evnt in Model)
{
    <div class="page-break">
        @{Html.RenderAction("PrintChild", "Events", new { ID = evnt.EventID });}
    </div>
}

的CSS:

@media print
{    
    .no-print
    {
        display: none !important;
    }

    .page-break
    {
        page-break-before: always;
    }
}

链接到样式表等是在_Layout视图中完成的。

这是我最终使用的解决方案:

CSS:

@media print
{    
    .no-print
    {
        display: none !important;
    }

    .page-break
    {
        page-break-after: always;
    }

    .page-break-last
    {
         page-break-after: avoid;
    }
}

查看:

@{
        int i = Model.Count();
        foreach (Musa.Models.Event evnt in Model)
        {
            if (i == 1)
            {
                <div class="page-break page-break-last">
                    @{Html.RenderAction("PrintChild", "Events", new { ID = evnt.EventID });}
                </div>
            }
            else
            {
                <div class="page-break">
                    @{Html.RenderAction("PrintChild", "Events", new { ID = evnt.EventID });}
                </div>
            }
            i--;

        }
    }

1 个答案:

答案 0 :(得分:0)

以下方法可行:

@media print
{    
    .no-print
    {
        display: none !important;
    }

    .page-break
    {
        page-break-after: always;
    }

    .last-page{
        page-break-after: avoid;
    }
}

使用以下html:

<h1 class="no-print">Header</h1>

<div class="page-break">Test 1</div>
<div class="page-break">Test 2</div>
<div class="page-break last-page">Test 3</div>

因此,请确保最后一项获得一个额外的类标记,否则最后会得到一个空白页。