Hi;
I'm getting the exact same behaviour as detailed in this thread: http://www.telerik.com/community/forums/aspnet-ajax/grid/error-while-exporting-radgrid-data-to-pdf.aspx but only with IE. As in the thread, I'm getting errors exporting to Excel and PDF if I choose Open from the browser's download message.
I'm running IE9, and tried it with and without compatibility view. Choosing Save works correctly, and I can open the resulting files with no problem.
I'm using Telerik AJAX Components 2013 Q2 NET 40.
In FireFox, I am able to Open the files without an error. Here's the relevant code:
The alert in the onRequestStart function returns the client ID, which does contain the button ID's being tested for.
Code-behind. I'm doing custom page sizes and hiding one of the gridBound columns.
Any ideas on what I need to change?
I'm getting the exact same behaviour as detailed in this thread: http://www.telerik.com/community/forums/aspnet-ajax/grid/error-while-exporting-radgrid-data-to-pdf.aspx but only with IE. As in the thread, I'm getting errors exporting to Excel and PDF if I choose Open from the browser's download message.
I'm running IE9, and tried it with and without compatibility view. Choosing Save works correctly, and I can open the resulting files with no problem.
I'm using Telerik AJAX Components 2013 Q2 NET 40.
In FireFox, I am able to Open the files without an error. Here's the relevant code:
The alert in the onRequestStart function returns the client ID, which does contain the button ID's being tested for.
<script type=
"text/javascript"
>
function
onRequestStart(sender, args)
{
if
(
(args.get_eventTarget().indexOf(
"ExportToExcelButton"
) >= 0)
|| (args.get_eventTarget().indexOf(
"ExportToPdfButton"
) >= 0)
)
{
alert(args.get_eventTarget());
args.set_enableAjax(
false
);
}
}
</script>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
UpdatePanelsRenderMode
=
"Inline"
>
<
ClientEvents
OnRequestStart
=
"onRequestStart"
/>
<
AjaxSettings
>
.
.
.
<
telerik:AjaxSetting
AjaxControlID
=
"ReportResultsGrid"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"ReportResultsGrid"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
Skin
=
"Default"
>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadGrid
ID
=
"ReportResultsGrid"
runat
=
"server"
AllowPaging
=
"True"
AllowSorting
=
"True"
Height
=
"100%"
Width
=
"98%"
CellSpacing
=
"0"
GridLines
=
"None"
ShowGroupPanel
=
"True"
OnColumnCreated
=
"ReportResultsGrid_ColumnCreated"
AutoGenerateColumns
=
"False"
OnNeedDataSource
=
"ReportResultsGrid_NeedDataSource"
PageSize
=
"20"
OnItemCreated
=
"ReportResultsGrid_ItemCreated"
>
<
ExportSettings
OpenInNewWindow
=
"True"
ExportOnlyData
=
"True"
HideStructureColumns
=
"True"
IgnorePaging
=
"True"
>
<
Pdf
BorderType
=
"NoBorder"
ForceTextWrap
=
"true"
PageTopMargin
=
"1.5in"
PageBottomMargin
=
"0.5in"
PageLeftMargin
=
"0.1in"
PageRightMargin
=
"0.1in"
>
</
Pdf
>
</
ExportSettings
>
<
ClientSettings
AllowColumnsReorder
=
"True"
AllowDragToGroup
=
"True"
ReorderColumnsOnClient
=
"True"
>
<
Scrolling
UseStaticHeaders
=
"True"
/>
</
ClientSettings
>
<
MasterTableView
PageSize
=
"25"
CommandItemDisplay
=
"TopAndBottom"
>
<
CommandItemSettings
ShowAddNewRecordButton
=
"False"
ShowExportToExcelButton
=
"True"
ShowExportToPdfButton
=
"True"
ShowRefreshButton
=
"False"
/>
<
Columns
>
.
.
.
[grid bound columns]
.
.
.
</
Columns
>
<
PagerStyle
Position
=
"TopAndBottom"
AlwaysVisible
=
"true"
/>
<
CommandItemStyle
HorizontalAlign
=
"Left"
/>
</
MasterTableView
>
<
PagerStyle
PageSizes
=
"10;25;50;100;200"
Position
=
"TopAndBottom"
/>
</
telerik:RadGrid
>
Code-behind. I'm doing custom page sizes and hiding one of the gridBound columns.
protected void ReportResultsGrid_ItemCreated(object sender, GridItemEventArgs e)
{
if (e.Item is GridPagerItem)
{
var dropDown = (RadComboBox)e.Item.FindControl("PageSizeComboBox");
var totalCount = ((GridPagerItem)e.Item).Paging.DataSourceCount;
var sizes = new Dictionary<
string
, string>() {
{"10", "10"},
{"25", "25"},
{"50", "50"}
};
if (totalCount > 100)
{
sizes.Add("100", "100");
}
if (totalCount > 200)
{
sizes.Add("200", "200");
}
sizes.Add("All", totalCount.ToString());
dropDown.Items.Clear();
foreach (var size in sizes)
{
var cboItem = new RadComboBoxItem() { Text = size.Key, Value = size.Value };
cboItem.Attributes.Add("ownerTableViewId", e.Item.OwnerTableView.ClientID);
dropDown.Items.Add(cboItem);
}
dropDown.FindItemByValue(e.Item.OwnerTableView.PageSize.ToString()).Selected = true;
}
}
protected void ReportResultsGrid_ColumnCreated(object sender, GridColumnCreatedEventArgs e)
{
if (e.Column is GridBoundColumn)
{
GridBoundColumn col = (GridBoundColumn)e.Column;
if (col.UniqueName == "ID")
{
col.Visible = false;
}
}
}
protected void ReportResultsGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
DataTable results = (DataTable)Session[ListReportResultsName];
ReportResultsGrid.DataSource = results;
}
Any ideas on what I need to change?