Hi Telerik Team,
I am facing column alignment issue while exporting the generated RadGrid to Excel/Word. I am using relative width to align the UI (please refer to sample code below and attached 'UI_View.png' file), however when exported to Word/Excel the alignment is getting displaced, detail table columns are not following the master table columns (refer to 'Excel_Export.png' and 'Word_Export.png' files).
Would appreciate if you could come up with an idea on to keep the alignment intact so detail table columns are exactly in the same column of master table when exported.
Thanks,
Pankaj
I am facing column alignment issue while exporting the generated RadGrid to Excel/Word. I am using relative width to align the UI (please refer to sample code below and attached 'UI_View.png' file), however when exported to Word/Excel the alignment is getting displaced, detail table columns are not following the master table columns (refer to 'Excel_Export.png' and 'Word_Export.png' files).
Would appreciate if you could come up with an idea on to keep the alignment intact so detail table columns are exactly in the same column of master table when exported.
Thanks,
Pankaj
<
telerik:RadGrid
ID
=
"rgDTSItems"
EnableAJAX
=
"True"
EnableAJAXLoadingTemplate
=
"True"
Skin
=
"Windows7"
OnColumnCreated
=
"rgDTSItems_ColumnCreated"
OnItemCreated
=
"rgDTSItems_ItemCreated"
OnItemDataBound
=
"rgDTSItems_ItemDataBound"
ShowStatusBar
=
"true"
runat
=
"server"
Width
=
"99.9%"
PageSize
=
"10"
AllowSorting
=
"True"
AllowMultiRowSelection
=
"false"
AllowPaging
=
"True"
GridLines
=
"Horizontal"
AutoGenerateColumns
=
"False"
OnDetailTableDataBind
=
"rgDTSItems_DetailTableDataBind"
OnNeedDataSource
=
"rgDTSItems_NeedDataSource"
OnItemCommand
=
"rgDTSItems_ItemCommand"
>
<
GroupPanel
Visible
=
"False"
>
</
GroupPanel
>
<
ClientSettings
Selecting-AllowRowSelect
=
"true"
EnableRowHoverStyle
=
"true"
>
</
ClientSettings
>
<
MasterTableView
HierarchyLoadMode
=
"Client"
DataKeyNames
=
"RefNo,DeptDiv"
DataMember
=
"mcs_main"
ShowHeader
=
"true"
TableLayout
=
"Fixed"
Width
=
"100%"
CommandItemDisplay
=
"Bottom"
HorizontalAlign
=
"Right"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"RefNo"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"DeptDiv"
HeaderText
=
"Div"
HeaderStyle-Width
=
"8%"
HeaderStyle-HorizontalAlign
=
"Center"
HeaderStyle-Font-Bold
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"TemplateColumn"
HeaderText
=
"Ref No"
SortExpression
=
"RefNo"
HeaderStyle-Width
=
"8%"
HeaderStyle-Font-Bold
=
"true"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblRefNo"
runat
=
"server"
Text='<%#Eval("Type").ToString().Substring(0, 1) + "-" + Eval("RefNo")%>'>
</
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"DateDueDoc"
UniqueName
=
"DateDueDoc"
Display
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"gtcDocDueDate"
HeaderText
=
"Due/Doc Date"
SortExpression
=
"DateDueDoc"
HeaderStyle-Width
=
"12%"
HeaderStyle-Font-Bold
=
"true"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblDateDueDoc"
runat
=
"server"
Text='<%#Eval("DateDueDoc","{0:d}") + " " + Eval("TimeDueDoc") %> '></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"Sender"
HeaderText
=
"From"
HeaderStyle-Width
=
"15%"
HeaderStyle-Font-Bold
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Recipient"
HeaderText
=
"Assigned To/Recipient"
HeaderStyle-Width
=
"25%"
ItemStyle-Wrap
=
"true"
HeaderStyle-Font-Bold
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"gtcSubject"
HeaderText
=
"Subject"
SortExpression
=
"Subject"
HeaderStyle-Width
=
"32%"
HeaderStyle-Font-Bold
=
"true"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblSubject"
runat
=
"server"
Text='<%#Eval("FormattedSubject")%>' Font-Bold="true"></
asp:Label
>
<
telerik:RadToolTip
ID
=
"rttSubject"
runat
=
"server"
TargetControlID
=
"lblSubject"
Width
=
"200px"
RelativeTo
=
"Element"
Position
=
"MiddleRight"
EnableShadow
=
"true"
>
<%#Eval("Subject")%>
</
telerik:RadToolTip
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"RefNo,DeptDiv"
DataMember
=
"mcs_main"
ShowHeader
=
"False"
EnableNoRecordsTemplate
=
"false"
Width
=
"100%"
ShowHeadersWhenNoRecords
=
"false"
HorizontalAlign
=
"Right"
TableLayout
=
"Fixed"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"RefNo"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"DeptDiv"
HeaderText
=
"Div"
HeaderStyle-Width
=
"8%"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"gtcRefNo"
HeaderText
=
"Ref No"
SortExpression
=
"RefNo"
HeaderStyle-Width
=
"8%"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblRefNo"
runat
=
"server"
Text='<%#Eval("Type").ToString().Substring(0, 1) + "-" + Eval("RefNo")%>'>
</
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"DateDueDoc"
UniqueName
=
"DateDueDoc"
Display
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"gtcDocDueDate"
HeaderText
=
"Due/Doc Date"
SortExpression
=
"DateDueDoc"
HeaderStyle-Width
=
"12%"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblDateDueDoc"
runat
=
"server"
Text='<%#Eval("DateDueDoc","{0:d}") + " " + Eval("TimeDueDoc") %> '></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"Sender"
HeaderText
=
"From"
HeaderStyle-Width
=
"15%"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Recipient"
HeaderText
=
"Assigned To/Recipient"
HeaderStyle-Width
=
"25%"
ItemStyle-Wrap
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"gtcSubject"
HeaderText
=
"Subject"
SortExpression
=
"Subject"
HeaderStyle-Width
=
"32%"
HeaderStyle-Font-Bold
=
"true"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblSubject"
runat
=
"server"
Text='<%#Eval("FormattedSubject")%>' Font-Bold="true"></
asp:Label
>
<
telerik:RadToolTip
ID
=
"rttSubject"
runat
=
"server"
TargetControlID
=
"lblSubject"
Width
=
"200px"
RelativeTo
=
"Element"
Position
=
"MiddleRight"
EnableShadow
=
"true"
>
<%#Eval("Subject")%>
</
telerik:RadToolTip
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
<
CommandItemSettings
ShowExportToWordButton
=
"true"
ShowExportToExcelButton
=
"true"
ShowExportToCsvButton
=
"false"
ShowExportToPdfButton
=
"true"
ShowAddNewRecordButton
=
"false"
ShowRefreshButton
=
"false"
/>
</
MasterTableView
>
<
ClientSettings
AllowExpandCollapse
=
"true"
>
<
DataBinding
CountPropertyName
=
"Count"
/>
<
ClientEvents
OnRowCreated
=
"RowCreated"
OnRowDblClick
=
"RowDblClicked"
/>
</
ClientSettings
>
<
ExportSettings
HideStructureColumns
=
"true"
IgnorePaging
=
"true"
ExportOnlyData
=
"true"
FileName
=
"DTS_Items"
OpenInNewWindow
=
"true"
Pdf-PageHeight
=
"215mm"
Pdf-PageWidth
=
"356mm"
/>
<
FilterMenu
EnableTheming
=
"True"
Skin
=
"Outlook"
>
<
CollapseAnimation
Duration
=
"200"
Type
=
"OutQuint"
/>
</
FilterMenu
>
<
SelectedItemStyle
CssClass
=
"SelectedFolder"
></
SelectedItemStyle
>
</
telerik:RadGrid
>
protected void rgDTSItems_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
if (e.CommandName == Telerik.Web.UI.RadGrid.ExportToExcelCommandName ||
e.CommandName == Telerik.Web.UI.RadGrid.ExportToWordCommandName ||
e.CommandName == Telerik.Web.UI.RadGrid.ExportToCsvCommandName ||
e.CommandName == Telerik.Web.UI.RadGrid.ExportToPdfCommandName)
{
ConfigureExport();
}
else if (e.CommandName == "Print")
{
ConfigureExport();
ConfigurePrint();
}
else if (e.CommandName == "EnablePaging")
{
rgDTSItems.MasterTableView.HierarchyLoadMode = GridChildLoadMode.Client;
rgDTSItems.MasterTableView.HierarchyDefaultExpanded = false;
rgDTSItems.MasterTableView.DetailTables[0].GetColumn("DateDueDoc").Visible = true;
EnableDisablePaging(true);
}
}
private void ConfigureExport()
{
rgDTSItems.MasterTableView.HierarchyLoadMode = GridChildLoadMode.ServerBind;
rgDTSItems.MasterTableView.HierarchyDefaultExpanded = true;
//Since while exporting hidden column DateDueDoc appears therefore hide the column before exporting
rgDTSItems.MasterTableView.DetailTables[0].GetColumn("DateDueDoc").Visible = false;
}
//For printing we need to disable paging and call the PrintGird client function
private void ConfigurePrint()
{
//Allowpaging to false
EnableDisablePaging(false);
foreach (GridItem item in rgDTSItems.MasterTableView.GetItems(new GridItemType[] { GridItemType.Pager, GridItemType.FilteringItem }))
item.Display = false;
ramHome.ResponseScripts.Add("PrintGrid('" + rgDTSItems.ClientID + "')");
}
//Enable/disable paging in case of Print
private void EnableDisablePaging(bool doEnable)
{
rgDTSItems.AllowPaging = doEnable;
rgDTSItems.Rebind();
}