Hi,
I have a problem exporting a grid to excel.
All works fine but the excel file is empty.
I can confirm that NeedDataSource event is raised and data come from repository when the export button is clicked.
This is the code for export:
And this is the page code:
Excel file is generated but with <Row></Row> tags empty.
I'm using Q2 grid.
Regards
Jose
I have a problem exporting a grid to excel.
All works fine but the excel file is empty.
I can confirm that NeedDataSource event is raised and data come from repository when the export button is clicked.
This is the code for export:
protected
void
ToExcelButton_Click(
object
sender, EventArgs e)
{
ConfigureExport();
ListGrid.MasterTableView.ExportToExcel();
}
public
void
ConfigureExport()
{
ListGrid.ExportSettings.ExportOnlyData =
true
;
ListGrid.ExportSettings.IgnorePaging =
true
;
ListGrid.ExportSettings.OpenInNewWindow =
true
;
// Hide button columns
ListGrid.MasterTableView.GetColumn("EditButton").Visible = false;
ListGrid.MasterTableView.GetColumn("Logo").Visible = false;
ListGrid.MasterTableView.GetColumn("DeleteButton").Visible = false;
}
And this is the page code:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="List.aspx.cs" Inherits="Quasar.WebUI.Customers.Customers.List" %>
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"HeadContent"
runat
=
"server"
>
<
title
>Quasar | CRM - Customers List</
title
>
</
asp:Content
>
<
asp:Content
ID
=
"Content2"
ContentPlaceHolderID
=
"MainContent"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
// on ToExcel button click temporarily disables ajax to perform
// actions
function conditionalPostback(sender, args) {
if (args.get_eventTarget().indexOf("ToExcelButton") >= 0) {
args.set_enableAjax(false);
}
}
</
script
>
<
telerik:RadWindowManager
ID
=
"ListRadWindowManager"
runat
=
"server"
/>
<
telerik:RadAjaxLoadingPanel
ID
=
"ListRadAjaxLoadingPanel"
runat
=
"server"
Skin
=
"Default"
/>
<
telerik:RadAjaxManager
ID
=
"ListRadAjaxManager"
runat
=
"server"
ClientEvents-OnRequestStart
=
"conditionalPostback"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"ListGrid"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"ListGrid"
LoadingPanelID
=
"ListRadAjaxLoadingPanel"
UpdatePanelHeight
=
""
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
div
class
=
"findField"
>
<
asp:Label
ID
=
"VATLabel"
runat
=
"server"
AssociatedControlID
=
"VAT"
>CIF/VAT :</
asp:Label
>
<
telerik:RadTextBox
ID
=
"VAT"
runat
=
"server"
EmptyMessage
=
"(empty)"
MaxLength
=
"25"
Columns
=
"15"
SelectionOnFocus
=
"SelectAll"
ToolTip
=
"Find Customer by CIF/VAT"
></
telerik:RadTextBox
>
<
asp:Label
ID
=
"ContactLabel"
runat
=
"server"
AssociatedControlID
=
"Contact"
>Contact :</
asp:Label
>
<
telerik:RadTextBox
ID
=
"Contact"
runat
=
"server"
EmptyMessage
=
"(empty)"
MaxLength
=
"25"
Columns
=
"25"
SelectionOnFocus
=
"SelectAll"
ToolTip
=
"Find Customer by Contact"
></
telerik:RadTextBox
>
<
asp:Label
ID
=
"EmailLabel"
runat
=
"server"
AssociatedControlID
=
"Email"
>Email :</
asp:Label
>
<
telerik:RadTextBox
ID
=
"Email"
runat
=
"server"
EmptyMessage
=
"(empty)"
MaxLength
=
"25"
Columns
=
"25"
SelectionOnFocus
=
"SelectAll"
ToolTip
=
"Find Customer by Contact Email"
></
telerik:RadTextBox
>
<
telerik:RadButton
ID
=
"FindButton"
runat
=
"server"
Icon-PrimaryIconUrl
=
"~/Images/Find.png"
Text
=
"Find"
Width
=
"75px"
onclick
=
"FindButton_Click"
>
</
telerik:RadButton
>
</
div
>
<
telerik:RadGrid
ID
=
"ListGrid"
runat
=
"server"
AllowFilteringByColumn
=
"True"
AllowPaging
=
"True"
AllowSorting
=
"True"
AutoGenerateColumns
=
"False"
GridLines
=
"None"
ShowStatusBar
=
"True"
ShowGroupPanel
=
"True"
EnableLinqExpressions
=
"false"
onneeddatasource
=
"ListGrid_NeedDataSource"
onitemcommand
=
"ListGrid_ItemCommand"
onitemdatabound
=
"ListGrid_ItemDataBound"
>
<
ClientSettings
AllowColumnsReorder
=
"True"
ReorderColumnsOnClient
=
"True"
AllowDragToGroup
=
"True"
>
<
Selecting
AllowRowSelect
=
"False"
/>
</
ClientSettings
>
<
GroupingSettings
CaseSensitive
=
"false"
/>
<
ExportSettings
ExportOnlyData
=
"true"
IgnorePaging
=
"true"
OpenInNewWindow
=
"true"
FileName
=
"Customers"
>
<
Excel
Format
=
"ExcelML"
/>
</
ExportSettings
>
<
MasterTableView
Name
=
"Master"
DataKeyNames
=
"CustomerId"
CommandItemDisplay
=
"Top"
CommandItemSettings-ShowRefreshButton
=
"False"
CommandItemSettings-ShowExportToExcelButton
=
"true"
>
<
RowIndicatorColumn
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
ExpandCollapseColumn
>
<
NestedViewSettings
>
<
ParentTableRelation
>
<
telerik:GridRelationFields
DetailKeyField
=
"ContactId"
MasterKeyField
=
"CustomerId"
/>
<
telerik:GridRelationFields
DetailKeyField
=
"AddressId"
MasterKeyField
=
"CustomerId"
/>
</
ParentTableRelation
>
</
NestedViewSettings
>
<
NestedViewTemplate
>
<
asp:Panel
runat
=
"server"
ID
=
"InnerContainer"
CssClass
=
"viewWrap"
>
<
telerik:RadTabStrip
runat
=
"server"
ID
=
"CustomersTabStrip"
MultiPageID
=
"CustomersMultipage"
SelectedIndex
=
"0"
>
<
Tabs
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Contacts"
PageViewID
=
"ContactsPageView"
>
</
telerik:RadTab
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Addresses"
PageViewID
=
"AddressesPageView"
>
</
telerik:RadTab
>
</
Tabs
>
</
telerik:RadTabStrip
>
<
telerik:RadMultiPage
runat
=
"server"
ID
=
"CustomersMultipage"
SelectedIndex
=
"0"
RenderSelectedPageOnly
=
"false"
>
<
telerik:RadPageView
runat
=
"server"
ID
=
"ContactsPageView"
>
<
telerik:RadGrid
ID
=
"ContactsGrid"
runat
=
"server"
AllowSorting
=
"false"
AllowFilteringByColumn
=
"false"
PageSize
=
"5"
AllowPaging
=
"true"
AutoGenerateColumns
=
"False"
GridLines
=
"None"
onneeddatasource
=
"ContactsGrid_NeedDataSource"
>
<
ClientSettings
AllowColumnsReorder
=
"True"
ReorderColumnsOnClient
=
"True"
AllowDragToGroup
=
"True"
>
<
Selecting
AllowRowSelect
=
"False"
/>
</
ClientSettings
>
<
MasterTableView
DataKeyNames
=
"ContactId"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ContactId"
HeaderText
=
"Id"
UniqueName
=
"ContactId"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Full Name"
DataField
=
"FullName"
UniqueName
=
"FullName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Position"
DataField
=
"Position"
UniqueName
=
"Position"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Contact Type"
DataField
=
"ContactType.Description"
UniqueName
=
"ContactType"
>
</
telerik:GridBoundColumn
>
<
telerik:GridHyperLinkColumn
DataNavigateUrlFields
=
"Email"
DataNavigateUrlFormatString
=
"mailto:{0}"
DataTextField
=
"Email"
HeaderText
=
"Email"
UniqueName
=
"Email"
Groupable
=
"false"
AllowFiltering
=
"false"
>
</
telerik:GridHyperLinkColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Phone"
DataField
=
"Phone"
UniqueName
=
"Phone"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Mobile"
DataField
=
"Mobile"
UniqueName
=
"Mobile"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
telerik:RadPageView
>
<
telerik:RadPageView
runat
=
"server"
ID
=
"AddressesPageView"
>
<
telerik:RadGrid
ID
=
"AddressesGrid"
runat
=
"server"
AllowSorting
=
"false"
AllowFilteringByColumn
=
"false"
PageSize
=
"5"
AllowPaging
=
"true"
AutoGenerateColumns
=
"False"
GridLines
=
"None"
onneeddatasource
=
"AddressesGrid_NeedDataSource"
>
<
ClientSettings
AllowColumnsReorder
=
"True"
ReorderColumnsOnClient
=
"True"
AllowDragToGroup
=
"True"
>
<
Selecting
AllowRowSelect
=
"False"
/>
</
ClientSettings
>
<
MasterTableView
DataKeyNames
=
"AddressId"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"AddressId"
HeaderText
=
"Id"
UniqueName
=
"AddressId"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Address Type"
DataField
=
"AddressType"
UniqueName
=
"AddressType"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Full Address"
DataField
=
"FullAddress"
UniqueName
=
"FullAddress"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Zip Code"
DataField
=
"ZipCode"
UniqueName
=
"ZipCode"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"City"
DataField
=
"City"
UniqueName
=
"City"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Province"
DataField
=
"Province"
UniqueName
=
"Province"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Country"
DataField
=
"Country"
UniqueName
=
"Country"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
telerik:RadPageView
>
</
telerik:RadMultiPage
>
</
asp:Panel
>
</
NestedViewTemplate
>
<
Columns
>
<
telerik:GridButtonColumn
ButtonType
=
"ImageButton"
Reorderable
=
"False"
Resizable
=
"False"
ShowFilterIcon
=
"False"
ShowSortIcon
=
"False"
UniqueName
=
"EditButton"
ImageUrl
=
"~/Images/Edit.png"
CommandName
=
"Edit"
>
<
ItemStyle
Width
=
"20px"
HorizontalAlign
=
"Center"
VerticalAlign
=
"Middle"
/>
</
telerik:GridButtonColumn
>
<
telerik:GridImageColumn
AllowFiltering
=
"False"
AllowSorting
=
"False"
DataAlternateTextField
=
"Name"
DataImageUrlFields
=
"Logo"
DataImageUrlFormatString
=
"~/Images/Customers/{0}"
Groupable
=
"False"
HeaderText
=
"Logo"
ImageHeight
=
"64px"
ImageWidth
=
"64px"
ShowSortIcon
=
"False"
UniqueName
=
"Logo"
ItemStyle-Width
=
"75px"
>
<
ItemStyle
Width
=
"75px"
/>
</
telerik:GridImageColumn
>
<
telerik:GridBoundColumn
DataField
=
"CustomerId"
HeaderText
=
"Id"
UniqueName
=
"CustomerId"
Visible
=
"false"
AllowFiltering
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Name"
HeaderText
=
"Name"
UniqueName
=
"Name"
>
</
telerik:GridBoundColumn
>
<
telerik:GridHyperLinkColumn
DataNavigateUrlFields
=
"Web"
DataNavigateUrlFormatString
=
"{0}"
DataTextField
=
"Web"
HeaderText
=
"Web"
UniqueName
=
"Web"
Target
=
"_blank"
Groupable
=
"false"
AllowFiltering
=
"false"
>
</
telerik:GridHyperLinkColumn
>
<
telerik:GridBoundColumn
DataField
=
"Group.Name"
HeaderText
=
"Group"
UniqueName
=
"Group"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"ActiveGroup"
DataField
=
"Group.IsActive"
UniqueName
=
"ActiveGroup"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"AccountManager.FullName"
HeaderText
=
"Acct. Manager"
UniqueName
=
"AccountManager"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"ActiveAcctMgr"
DataField
=
"AccountManager.IsActive"
UniqueName
=
"ActiveAcctMgr"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"SIC.Description"
HeaderText
=
"SIC"
UniqueName
=
"SIC"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"ActiveSIC"
DataField
=
"SIC.IsActive"
UniqueName
=
"ActiveSIC"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridCheckBoxColumn
DataField
=
"IsProspect"
HeaderText
=
"Prospect"
UniqueName
=
"IsProspect"
>
</
telerik:GridCheckBoxColumn
>
<
telerik:GridButtonColumn
ButtonType
=
"ImageButton"
Reorderable
=
"False"
Resizable
=
"False"
ShowFilterIcon
=
"False"
ShowSortIcon
=
"False"
UniqueName
=
"DeleteButton"
ImageUrl
=
"~/Images/Delete.png"
CommandName
=
"Delete"
ConfirmDialogType
=
"RadWindow"
ConfirmText
=
"Are you sure you want to delete this record?"
ConfirmTitle
=
"Delete record..."
ConfirmDialogHeight
=
"130px"
>
<
ItemStyle
Width
=
"20px"
HorizontalAlign
=
"Center"
VerticalAlign
=
"Middle"
/>
</
telerik:GridButtonColumn
>
</
Columns
>
</
MasterTableView
>
<
PagerStyle
Mode
=
"NextPrevAndNumeric"
Position
=
"Bottom"
/>
<
HeaderContextMenu
EnableImageSprites
=
"True"
CssClass
=
"GridContextMenu GridContextMenu_Default"
></
HeaderContextMenu
>
</
telerik:RadGrid
>
<
p
class
=
"submitButton"
>
<
telerik:RadButton
ID
=
"ToExcelButton"
runat
=
"server"
Icon-PrimaryIconUrl
=
"~/Images/Save.png"
Text
=
"Save"
Width
=
"75px"
onclick
=
"ToExcelButton_Click"
>
</
telerik:RadButton
>
</
p
>
</
asp:Content
>
Excel file is generated but with <Row></Row> tags empty.
I'm using Q2 grid.
Regards
Jose