【发布时间】:2016-03-14 13:10:39
【问题描述】:
我有一个显示作业列表的 DataGrid。当我打印此列表时,如果它进入另一页,则某些行会被截断。我想在 15 行之后添加一个分页符。因此,一旦 DataGrid 下降到第 15 行,它将转到下一页进行打印。
<asp:DataGrid CssClass="tblResults" runat="server" ID="dgDetails" AutoGenerateColumns="false">
<HeaderStyle CssClass="tblResultsHeader" />
<AlternatingItemStyle BackColor="#EEEEEE" />
<Columns>
<asp:TemplateColumn HeaderText="Job">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"JobNo") %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Date">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "DeliverDateTime")%>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Collect From">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "CollectionAddressInvoice")%>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="DeliverTo">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"DeliveryAddressInvoice") %>
</ItemTemplate>
</asp:TemplateColumn>
DataSet dsTable = null;
dsTable = DataUtils.GetTableProperties(Company.Current.CompanyID, "InvoicePrint" + q.Job.JobScreen);
if (dsTable.Tables[0].Rows.Count == 0)
{
dsTable = DataUtils.GetTableProperties(Company.Current.CompanyID, "InvoicePrint");
}
if (dsTable.Tables[0].Rows.Count > 0)
{
DataGrid dgDetails = new DataGrid();
dgDetails.ID = "dgResults";
dgDetails.Width = new Unit(dsTable.Tables[0].Rows[0]["Width"].ToString());
dgDetails.BorderWidth = new Unit(dsTable.Tables[0].Rows[0]["BorderWidth"].ToString());
switch (dsTable.Tables[0].Rows[0]["GridLines"].ToString().ToUpper())
{
case "BOTH":
dgDetails.GridLines = GridLines.Both;
break;
case "HORIZONTAL":
dgDetails.GridLines = GridLines.Horizontal;
break;
case "NONE":
dgDetails.GridLines = GridLines.None;
break;
case "VERTICAL":
dgDetails.GridLines = GridLines.Vertical;
break;
}
dgDetails.AutoGenerateColumns = false;
dgDetails.ShowFooter = false;
dgDetails.DataKeyField = dsTable.Tables[0].Rows[0]["DataKeyField"].ToString();
dgDetails.CssClass = "tblResults";
dgDetails.HeaderStyle.CssClass = "tblResultsHeader";
if (!string.IsNullOrEmpty(Company.Current.Theme))
{
dgDetails.HeaderStyle.ForeColor = System.Drawing.ColorTranslator.FromHtml(Company.Current.TextColor);
dgDetails.HeaderStyle.BackColor = System.Drawing.ColorTranslator.FromHtml(Company.Current.Theme);
}
dgDetails.AlternatingItemStyle.CssClass = "ResultsStyleAlt";
dgDetails.ItemStyle.CssClass = "ResultsStyle";
dgDetails.AllowSorting = false;
dgDetails.AllowPaging = false;
foreach (DataRow dr in dsTable.Tables[1].Rows)
{
if (Convert.ToBoolean(dr["ShowInTableOnly"]) || !Convert.ToBoolean(dr["ShowInPopUpOnly"]))
{
dgDetails.Columns.Add(CreateBoundColumn(dr));
}
}
List<InvoicePrint> invItems = InvoicePrint.GetInvoiceItems(Company.Current.CompanyID, int.Parse(q.InvoiceNo), OrderByPoNum);
dgDetails.ItemDataBound += new DataGridItemEventHandler(dgDetails_Bind);
dgDetails.DataSource = invItems;
dgDetails.DataBind();
但是我应该把分页符放在哪里?
【问题讨论】:
标签: c# asp.net datagrid page-break