ASPxDashboard.CustomExport Event
Allows you to customize the exported document.
Namespace: DevExpress.DashboardWeb
Assembly: DevExpress.Dashboard.v18.2.Web.WebForms.dll
Declaration
public event CustomExportWebEventHandler CustomExport
Public Event CustomExport As CustomExportWebEventHandler
Event Data
The CustomExport event's data class is CustomExportWebEventArgs.
The following properties provide information specific to this event:
Property |
Description |
DashboardId |
Gets the identifier of the exported dashboard.
|
ExportAction |
Gets the export action performed by an end-user.
|
ExportMode |
Gets the document export mode.
|
ImageExportOptions |
Gets export options related to exporting a dashboard/dashboard item to an image.
|
ImageOptions |
Obsolete. Gets export options related to exporting a dashboard/dashboard item to an image.
|
ItemComponentName |
Gets the component name of the exported dashboard item.
|
PdfExportOptions |
Gets export options related to exporting a dashboard/dashboard item to PDF format.
|
PdfOptions |
Obsolete. Gets export options related to exporting a dashboard/dashboard item to PDF format.
|
PrintableComponents |
Provides access to a dictionary containing dashboard item names and related PrintableComponents. For internal use.
|
Report |
Gets the underlying report of the exported document.
|
The CustomExport event is raised is raised before saving the exported document to the PDF and Image formats, and allows you to customize the underlying report using the CustomExportWebEventArgs.Report parameter. When handling this event, you can obtain the following information.
Note
Note that a reference to the DevExpress.XtraReports.v18.2.dll assembly should be added to the project to allow customizing the underlying report (CustomExportWebEventArgs.Report).
Example
The following example shows how to specify header and footer content of an exported dashboard using the ASPxDashboard.CustomExport
event. This event provides access to the underlying report object created for the exported document.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebDashboard_CustomExport.Default" %>
<%@ Register Assembly="DevExpress.Dashboard.v16.2.Web, Version=16.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.DashboardWeb" TagPrefix="dx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div style="position: absolute; top: 0; left: 0; right: 0; bottom: 0;">
<dx:ASPxDashboard ID="ASPxDashboard1" runat="server" Width="100%" Height="100%"
AllowExportDashboardItems="True"
OnConfigureDataConnection="ASPxDashboard1_ConfigureDataConnection"
OnCustomExport="ASPxDashboard1_CustomExport">
</dx:ASPxDashboard>
</div>
</form>
</body>
</html>
using System;
using System.Web.Hosting;
using DevExpress.DashboardCommon;
using DevExpress.DashboardWeb;
using DevExpress.DataAccess.ConnectionParameters;
using DevExpress.DataAccess.Sql;
using DevExpress.XtraPrinting;
using DevExpress.XtraReports.UI;
namespace WebDashboard_CustomExport
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DashboardFileStorage dashboardFileStorage = new DashboardFileStorage("~/App_Data/Dashboards");
ASPxDashboard1.SetDashboardStorage(dashboardFileStorage);
DashboardSqlDataSource sqlDataSource = new DashboardSqlDataSource("SQL Data Source", "access97Connection");
SelectQuery query = SelectQueryFluentBuilder
.AddTable("SalesPerson")
.SelectAllColumns()
.Build("Sales Person");
sqlDataSource.Queries.Add(query);
DataSourceInMemoryStorage dataSourceStorage = new DataSourceInMemoryStorage();
dataSourceStorage.RegisterDataSource("sqlDataSource", sqlDataSource.SaveToXml());
ASPxDashboard1.SetDataSourceStorage(dataSourceStorage);
}
protected void ASPxDashboard1_ConfigureDataConnection(object sender, ConfigureDataConnectionWebEventArgs e) {
if (e.ConnectionName == "access97Connection") {
Access97ConnectionParameters access97Params = new Access97ConnectionParameters();
access97Params.FileName = HostingEnvironment.MapPath(@"~/App_Data/nwind.mdb");
e.ConnectionParameters = access97Params;
}
}
protected void ASPxDashboard1_CustomExport(object sender, CustomExportWebEventArgs e)
{
XtraReport report = e.Report as XtraReport;
PageHeaderBand headerBand = new PageHeaderBand();
report.Bands.Add(headerBand);
XRPictureBox icon = new XRPictureBox();
icon.ImageUrl = @"~/App_Data/Images/dxlogo.png";
icon.HeightF = 50;
icon.WidthF = 300;
headerBand.Controls.Add(icon);
XRLabel customHeader = new XRLabel();
customHeader.Text = "Additioanl Header Text";
customHeader.LeftF = 300;
customHeader.WidthF = 300;
headerBand.Controls.Add(customHeader);
XRPageInfo dateInfo = new XRPageInfo();
dateInfo.PageInfo = PageInfo.DateTime;
dateInfo.Format = "Created at {0:h:mm tt dd MMMM yyyy}";
dateInfo.TopF = 100;
dateInfo.WidthF = 200;
headerBand.Controls.Add(dateInfo);
XRPageInfo userInfo = new XRPageInfo();
userInfo.PageInfo = PageInfo.UserName;
userInfo.Format = "Current User: {0}";
userInfo.TopF = 100;
userInfo.LeftF = 250;
userInfo.WidthF = 200;
headerBand.Controls.Add(userInfo);
PageFooterBand footerBand = new PageFooterBand();
report.Bands.Add(footerBand);
XRPageInfo pageInfo = new XRPageInfo();
pageInfo.Format = "Page {0} of {1}";
footerBand.Controls.Add(pageInfo);
}
}
}
Imports System
Imports System.Web.Hosting
Imports DevExpress.DashboardCommon
Imports DevExpress.DashboardWeb
Imports DevExpress.DataAccess.ConnectionParameters
Imports DevExpress.DataAccess.Sql
Imports DevExpress.XtraPrinting
Imports DevExpress.XtraReports.UI
Namespace WebDashboard_CustomExport
Partial Public Class [Default]
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim dashboardFileStorage As New DashboardFileStorage("~/App_Data/Dashboards")
ASPxDashboard1.SetDashboardStorage(dashboardFileStorage)
Dim sqlDataSource As New DashboardSqlDataSource("SQL Data Source", "access97Connection")
Dim query As SelectQuery = SelectQueryFluentBuilder.
AddTable("SalesPerson").
SelectAllColumns().
Build("Sales Person")
sqlDataSource.Queries.Add(query)
Dim dataSourceStorage As New DataSourceInMemoryStorage()
dataSourceStorage.RegisterDataSource("sqlDataSource", sqlDataSource.SaveToXml())
ASPxDashboard1.SetDataSourceStorage(dataSourceStorage)
End Sub
Protected Sub ASPxDashboard1_ConfigureDataConnection(ByVal sender As Object, _
ByVal e As ConfigureDataConnectionWebEventArgs)
If e.ConnectionName = "access97Connection" Then
Dim access97Params As New Access97ConnectionParameters()
access97Params.FileName = HostingEnvironment.MapPath("~/App_Data/nwind.mdb")
e.ConnectionParameters = access97Params
End If
End Sub
Protected Sub ASPxDashboard1_CustomExport(ByVal sender As Object, _
ByVal e As CustomExportWebEventArgs)
Dim report As XtraReport = TryCast(e.Report, XtraReport)
Dim headerBand As New PageHeaderBand()
report.Bands.Add(headerBand)
Dim icon As New XRPictureBox()
icon.ImageUrl = "~/App_Data/Images/dxlogo.png"
icon.HeightF = 50
icon.WidthF = 300
headerBand.Controls.Add(icon)
Dim customHeader As New XRLabel()
customHeader.Text = "Additioanl Header Text"
customHeader.LeftF = 300
customHeader.WidthF = 300
headerBand.Controls.Add(customHeader)
Dim dateInfo As New XRPageInfo()
dateInfo.PageInfo = pageInfo.DateTime
dateInfo.Format = "Created at {0:h:mm tt dd MMMM yyyy}"
dateInfo.TopF = 100
dateInfo.WidthF = 200
headerBand.Controls.Add(dateInfo)
Dim userInfo As New XRPageInfo()
userInfo.PageInfo = pageInfo.UserName
userInfo.Format = "Current User: {0}"
userInfo.TopF = 100
userInfo.LeftF = 250
userInfo.WidthF = 200
headerBand.Controls.Add(userInfo)
Dim footerBand As New PageFooterBand()
report.Bands.Add(footerBand)
Dim pageInfo_1 As New XRPageInfo()
pageInfo_1.Format = "Page {0} of {1}"
footerBand.Controls.Add(pageInfo_1)
End Sub
End Class
End Namespace
<%@ Page Language="vb" AutoEventWireup="true" CodeBehind="Default.aspx.vb" Inherits="WebDashboard_CustomExport.Default" %>
<%@ Register Assembly="DevExpress.Dashboard.v16.2.Web, Version=16.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.DashboardWeb" TagPrefix="dx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div style="position: absolute; top: 0; left: 0; right: 0; bottom: 0;">
<dx:ASPxDashboard ID="ASPxDashboard1" runat="server" Width="100%" Height="100%"
AllowExportDashboardItems="True"
OnConfigureDataConnection="ASPxDashboard1_ConfigureDataConnection"
OnCustomExport="ASPxDashboard1_CustomExport">
</dx:ASPxDashboard>
</div>
</form>
</body>
</html>
See Also