2014-01-23 3 views
1

У меня есть сетка, которую я должен экспортировать в pdf. Я достиг этого, используя aspxgridviewexporter и printinsystem. Все работало нормально. Цвет ячеек заголовка сетки в pdf имеет серый цвет backcolor, который я хочу изменить.Как изменить обратную сторону сетки aspxgridexporter gridview

Вот мой код:

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; 

изменить цвет заголовка к blue.But я вижу один и тот же серый цвет.

Пожалуйста, помогите.

ответ

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; 
       } 
      } 
     } 
    } 
Смежные вопросы