【问题标题】:Formatting radgrid exporting to PDF格式化 radgrid 导出为 PDF
【发布时间】:2015-04-23 17:36:47
【问题描述】:

我有一个数据表 dt,并想从中制作一个 PDF 文件。一切都是动态的,它可以工作,但我无法格式化布局,例如备用行背景等。这是我的代码:

   private void MakeGridExportToPDF(string strTitle, DataTable dt)
{
    using (RadGrid grid = new RadGrid { AutoGenerateColumns = false, ShowHeader = true, })
    {
        grid.NeedDataSource += (object sender, GridNeedDataSourceEventArgs e) =>
              {
                  grid.DataSource = dt;
              };
        // Add columns
        dt.Columns.OfType<DataColumn>().ToList().ForEach(col =>
        {
            grid.MasterTableView.Columns.Add(new GridBoundColumn { DataField = col.ColumnName, HeaderText = col.Caption.ToCamel() });
        });
        GridExportSettings export = grid.ExportSettings;
        export.OpenInNewWindow = true;
        export.FileName = strTitle;
        export.IgnorePaging = true;
        GridPdfSettings pdf = export.Pdf;
        pdf.PageHeight = Unit.Parse("210mm"); // 
        pdf.PageWidth = Unit.Parse(GetPageWidth(grid.MasterTableView.Columns.Count)); // 
        pdf.DefaultFontFamily = "Arial Unicode MS";
        pdf.PageTopMargin = Unit.Parse("45mm");
        grid.ItemCreated += (object sender, GridItemEventArgs e) =>
         {
             GridItem item = e.Item;
             if (item is GridDataItem)
             {
                 item.Style["vertical-align"] = "middle";
                 item.Style["text-align"] = "center";
             }
             switch (item.ItemType) //Mimic RadGrid appearance for the exported PDF file
             {
                 case GridItemType.Item:
                     item.Style["background-color"] = "#DFDFDF";
                     item.Font.Italic = true;
                     break;
                 case GridItemType.AlternatingItem:
                     item.Style["background-color"] = "#FFFFFF";

                     break;
                 case GridItemType.Header:
                     item.Style["background-color"] = "#FFFFFF";
                     item.Style["Color"] = "#767676";
                     item.Font.Bold = true;
                     break;
                 case GridItemType.Footer:
                     item.Style["background-color"] = "#FFFFFF";


                     break;
             }
         };

        this.smCSVFile.Controls.Add(grid);
        grid.MasterTableView.ExportToPdf();
        bDone = true;
    }
}

我做错了什么。 ItemCreated 在第一次创建网格时触发,但在导出时不会触发并且看不到任何更改。任何帮助将不胜感激。

【问题讨论】:

  • 我的问题已经通过删除 use(RadGrid grid ....

标签: pdf radgrid export-to-pdf


【解决方案1】:

我的问题已通过删除 use(RadGrid grid .... 并且只需创建 Radgrid = new RadGrid { AutoGenerateColumns = false, ShowHeader = true, }

【讨论】:

    猜你喜欢
    • 2019-05-14
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    相关资源
    最近更新 更多