在 MVC 应用程序中使用 Rotativa 将 Webgrid 导出为 PDF
Webgrid exported to PDF using Rotativa in an MVC application
我正在使用 Rotativa 库将包含 100 条记录的 Webgrid 导出到 PDF 中。
我能够成功地将数据导出到 PDF,但问题是由于他的网格包含如此多的记录,pdf 在每一页上都有列 headers。
因此,header 列与 PDF 每一页中的列内容重叠。
我只想在 pdf 的第一页上显示 headers 列,而不是在每一页上。
部分视图(_Report.cshtml)如下:
<div id="reportDetailGrid">
@grid2.GetHtml(
tableStyle: "webgrid-table",
headerStyle: "webgrid-header",
footerStyle: "webgrid-footer",
alternatingRowStyle: "webgrid-alternating-row",
selectedRowStyle: "webgrid-selected-row",
rowStyle: "webgrid-row-style",
mode: WebGridPagerModes.All,
columns: grid2.Columns(
grid2.Column("PropertyCode", "PropertyCode", format: @<text>@item.PropertyCode</text>),
grid2.Column("TransactionTime", "TransactionTime", format: @<text>@item.TransactionTime</text>),
grid2.Column("ConfirmationNo", "ConfirmationNo",format: @<text>@item.ConfirmationNo</text>),
grid2.Column("AlertCode", "AlertCode",format: @<text>@item.AlertCode</text>),
grid2.Column("ErrorMessage", "ErrorMessage",format: @<text>@item.ErrorMessage</text>)
)
)
</div>
控制器代码为:
public ActionResult DownloadReportPDF()
{
var model = GetReportsViewModelData();
//Code to get content
return new Rotativa.PartialViewAsPdf("_Report", model) { FileName = "DigitalDashboardReport.pdf" };
}
下面是PDF第二页的截图:
它发生在 PDF 的每一页上。
任何人都可以帮助我只在首页而不是 PDF 的每一页上设置 header 列,或者如果他们有任何其他方式来设置要导出为 PDF 的内容的样式。
提前致谢。
我已通过在部分视图中添加以下样式代码来解决问题:
thead { display: table-header-group; }
tfoot { display: table-row-group; }
tr { page-break-inside: avoid; }
我正在使用 Rotativa 库将包含 100 条记录的 Webgrid 导出到 PDF 中。 我能够成功地将数据导出到 PDF,但问题是由于他的网格包含如此多的记录,pdf 在每一页上都有列 headers。 因此,header 列与 PDF 每一页中的列内容重叠。 我只想在 pdf 的第一页上显示 headers 列,而不是在每一页上。
部分视图(_Report.cshtml)如下:
<div id="reportDetailGrid">
@grid2.GetHtml(
tableStyle: "webgrid-table",
headerStyle: "webgrid-header",
footerStyle: "webgrid-footer",
alternatingRowStyle: "webgrid-alternating-row",
selectedRowStyle: "webgrid-selected-row",
rowStyle: "webgrid-row-style",
mode: WebGridPagerModes.All,
columns: grid2.Columns(
grid2.Column("PropertyCode", "PropertyCode", format: @<text>@item.PropertyCode</text>),
grid2.Column("TransactionTime", "TransactionTime", format: @<text>@item.TransactionTime</text>),
grid2.Column("ConfirmationNo", "ConfirmationNo",format: @<text>@item.ConfirmationNo</text>),
grid2.Column("AlertCode", "AlertCode",format: @<text>@item.AlertCode</text>),
grid2.Column("ErrorMessage", "ErrorMessage",format: @<text>@item.ErrorMessage</text>)
)
)
</div>
控制器代码为:
public ActionResult DownloadReportPDF()
{
var model = GetReportsViewModelData();
//Code to get content
return new Rotativa.PartialViewAsPdf("_Report", model) { FileName = "DigitalDashboardReport.pdf" };
}
下面是PDF第二页的截图:
它发生在 PDF 的每一页上。
任何人都可以帮助我只在首页而不是 PDF 的每一页上设置 header 列,或者如果他们有任何其他方式来设置要导出为 PDF 的内容的样式。 提前致谢。
我已通过在部分视图中添加以下样式代码来解决问题:
thead { display: table-header-group; }
tfoot { display: table-row-group; }
tr { page-break-inside: avoid; }