【问题标题】:How to change the backcolor of a aspxgridexporter gridview如何更改 aspxgridexporter gridview 的背景色
【发布时间】:2014-01-23 06:13:15
【问题描述】:

我有一个必须导出为 pdf 的网格。我通过使用 aspxgridviewexporter 和 printinsystem 实现了这一点。一切正常。 pdf中网格标题单元格的颜色有灰色背景,我想改变它。

这是我的代码:

PrintingSystem ps = new PrintingSystem();

PrintableComponentLink link1 = new PrintableComponentLink(ps);


GridViewExporter.GridView.Styles.Header.BackColor = Color.Blue;//This line didn't change the color.


    link1.Component = GridViewExporter;

    PrintableComponentLink link2 = new PrintableComponentLink(ps);
    link2.Component = ((IChartContainer)ChartId).Chart;
    // export column header

    Link reportTitle = new Link();
    reportTitle.CreateDetailArea +=
            new CreateAreaEventHandler(reportTitle_CreateDetailArea);



    Link chartTitle = new Link();
    chartTitle.CreateDetailArea +=
            new CreateAreaEventHandler(chartTitle_CreateDetailArea);


    CompositeLink compositeLink = new CompositeLink(ps);
    compositeLink.Links.AddRange(new object[] { reportTitle, link1, chartTitle, link2 });
    //compositeLink.Links.Add(link1);
    compositeLink.CreateDocument(false);
    link1.PrintingSystem.Document.AutoFitToPagesWidth = 1;
    link1.Landscape = false;
    using (MemoryStream stream = new MemoryStream())
    {
        compositeLink.PrintingSystem.ExportToPdf(stream);
        Response.Clear();
        Response.Buffer = false;
        Response.AppendHeader("Content-Type", "application/pdf");
        Response.AppendHeader("Content-Transfer-Encoding", "binary");
        Response.AppendHeader("Content-Disposition", "attachment; filename=Report.pdf");
        Response.BinaryWrite(stream.ToArray());
        Response.End();
    }
    ps.Dispose();

这里我用过

GridViewExporter.GridView.Styles.Header.BackColor = Color.Blue; 

将标题颜色更改为蓝色。但我看到相同的灰色。

请帮忙。

【问题讨论】:

    标签: asp.net gridview devexpress


    【解决方案1】:

    您应该使用 RenderBrick 事件处理程序来处理必要列的渲染样式。看下面的例子

    <dx:ASPxGridViewExporter ID="_gridViewExporter" runat="server" GridViewID="_gridView"
        Landscape="True" PaperKind="A4" OnRenderBrick="OnRenderGridViewBrick" />
    
    
    
    protected void OnRenderGridViewBrick(object sender, ASPxGridViewExportRenderingEventArgs e)
        {
            if (e.RowType == GridViewRowType.Data)
            {
                var column = e.Column as GridViewEditDataColumn;
                if (column != null)
                {
                    switch (column.FieldName)
                    {
                        case Constants.FieldName_Semaphore:
                            e.BrickStyle.BackColor = Color.Black;
                            break;
                    }
                }
            }
        }
    

    【讨论】:

      【解决方案2】:

      http://documentation.devexpress.com/#AspNet/DevExpressWebASPxGridViewExportASPxGridViewExporter_RenderBricktopic

      尝试访问上面的链接,看看它是否能解决您的问题。希望这可以帮助! :)

      【讨论】:

        猜你喜欢
        • 2012-10-31
        • 1970-01-01
        • 2018-09-23
        • 2013-06-28
        • 2011-04-29
        • 1970-01-01
        • 1970-01-01
        • 2015-08-22
        • 2011-11-11
        相关资源
        最近更新 更多