This is a migrated thread and some comments may be shown as answers.

Export to Excel not working in hierarchial grid

3 Answers 110 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Manish
Top achievements
Rank 1
Manish asked on 08 Oct 2010, 12:41 PM
Dear Sir,
I am using Radcontrols Q1 2007.
I have an hierarchical grid with 1 level of hierarchy. Everything works fine.
But when i do export to excel, it works on the local server, but when i deploy it to my development server, it does not work. The records instead of opening in an excel sheet, directly open on the page. The page is posted back and the records are displayed on the page itself, rather than exporting them to excel.
Please help me sort out this problem.
PS: I cannot upgrade my radcontrols version, as my client does not want to upgrade it.
Please find the code of aspx file.

<%@ Register TagPrefix="telerik" Namespace="Telerik.QuickStart" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.WebControls" Assembly="RadAjax.NET2" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.WebControls" Assembly="RadGrid.NET2" %>
 
 
<tr>
                <td class="text-bold" align="right" colspan="2">
                    <br />
                    <asp:LinkButton ID="lnkExcelExportMaster" runat="server" Text="Export to Excel (Master Data)"
                        ToolTip="Export to Excel (Master Data)" OnClick="lnkExcelMaster_OnClick" Font-Underline="true"></asp:LinkButton>
                            
                    <asp:LinkButton ID="lnkExcelExport" runat="server" Text="Export to Excel" ToolTip="Export to Excel"
                        OnClick="lnkExcel_OnClick" Font-Underline="true"></asp:LinkButton>
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">                       
                        <AjaxSettings>
                            <telerik:AjaxSetting AjaxControlID="grdAccomodationDetails">
                                <UpdatedControls>
                                    <telerik:AjaxUpdatedControl ControlID="grdAccomodationDetails" />
                                </UpdatedControls>
                            </telerik:AjaxSetting>
                        </AjaxSettings>
                    </telerik:RadAjaxManager>
                    <telerik:RadGrid ID="grdAccomodationDetails" runat="server" Skin="Web20" Width="95%"
                        ShowStatusBar="true" AutoGenerateColumns="False" PageSize="30" AllowSorting="True"
                        AllowMultiRowSelection="False" AllowPaging="True" OnDetailTableDataBind="grdAccomodationDetails_DetailTableDataBind"
                        OnNeedDataSource="grdAccomodationDetails_NeedDataSource" OnItemCreated="grdAccomodationDetails_ItemCreated">
                        <PagerStyle Mode="NextPrevAndNumeric"></PagerStyle>
                        <MasterTableView Width="100%" DataKeyNames="AccomodationId" AllowMultiColumnSorting="True">
                            <DetailTables>
                                <telerik:GridTableView DataKeyNames="AccomodationDetailsId" Name="InnerAccomodationDetails"
                                    Width="80%" AutoGenerateColumns="false">                                   
                                    <Columns>
                                        <telerik:GridBoundColumn SortExpression="Name" HeaderText="Full Name" HeaderButtonType="TextButton"
                                            DataField="Name" ItemStyle-Width="25%">
                                        </telerik:GridBoundColumn>
                                        <telerik:GridBoundColumn SortExpression="RegistrationNumber" HeaderText="Registration Number"
                                            HeaderButtonType="TextButton" DataField="RegistrationNumber" ItemStyle-Width="15%">
                                        </telerik:GridBoundColumn>
                                        <telerik:GridBoundColumn SortExpression="Sex" HeaderText="Sex" HeaderButtonType="TextButton"
                                            DataField="Sex" ItemStyle-Width="5%">
                                        </telerik:GridBoundColumn>
                                        <telerik:GridBoundColumn SortExpression="Age" HeaderText="Age" HeaderButtonType="TextButton"
                                            DataField="Age" ItemStyle-Width="5%">
                                        </telerik:GridBoundColumn>
                                    </Columns>
                                </telerik:GridTableView>
                            </DetailTables>
                            <Columns>
                                <telerik:GridBoundColumn SortExpression="AccomodationId" HeaderText="Accomodation Id"
                                    HeaderButtonType="TextButton" DataField="AccomodationId" ItemStyle-Width="15%">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="First Name" HeaderButtonType="TextButton"
                                    DataField="FirstName">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn SortExpression="MiddleName" HeaderText="Middle Name" HeaderButtonType="TextButton"
                                    DataField="MiddleName">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn SortExpression="LastName" HeaderText="Last Name" HeaderButtonType="TextButton"
                                    DataField="LastName">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn SortExpression="MobileNumber" HeaderText="Mobile Number"
                                    HeaderButtonType="TextButton" DataField="MobileNumber">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn SortExpression="CountofPeople" HeaderText="Total Count"
                                    HeaderButtonType="TextButton" DataField="CountofPeople">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn SortExpression="Address" HeaderText="Address" HeaderButtonType="TextButton"
                                    DataField="Address" Visible="false">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn SortExpression="ResidenceNumber" HeaderText="Residence Number"
                                    HeaderButtonType="TextButton" DataField="ResidenceNumber" Visible="false">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn SortExpression="EmailAddress" HeaderText="Email Address"
                                    HeaderButtonType="TextButton" DataField="EmailAddress" Visible="false">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn Visible="false" HeaderText="Arrival Date" HeaderButtonType="TextButton"
                                    HeaderStyle-HorizontalAlign="Center" DataField="ArrivalDate" DataFormatString="{0:MMM dd, yyyy}">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn Visible="false" HeaderText="Departure Date" HeaderButtonType="TextButton"
                                    HeaderStyle-HorizontalAlign="Center" DataField="DepartureDate" DataFormatString="{0:MMM dd, yyyy}">
                                </telerik:GridBoundColumn>
                            </Columns>
                        </MasterTableView>
                        <ClientSettings ReorderColumnsOnClient="True" AllowDragToGroup="True" AllowColumnsReorder="True">
                            <Selecting AllowRowSelect="true" />
                            <Resizing AllowRowResize="False" AllowColumnResize="True"></Resizing>
                        </ClientSettings>
                    </telerik:RadGrid>
                    <br />
                </td>
            </tr>

The cs code is as follows.
#region ===== NeedDataSource Event of Grid =====
   protected void grdAccomodationDetails_NeedDataSource(object source, Telerik.WebControls.GridNeedDataSourceEventArgs e)
   {
       try
       {
           if (!e.IsFromDetailTable)
           {
               grdAccomodationDetails.DataSource = megautsav.GetMegaUtsavAccomodations();
           }
       }
       catch (Exception ex)
       {
           LogHandler.LogError(long.Parse(Session["UserId"].ToString()), LogHandler.APPLICATION_ERROR, ex.StackTrace.ToString(), ex.Message.ToString());
           Response.Redirect("../Error.aspx?errmsg=" + HttpUtility.UrlEncode(ex.Message.ToString()));
       }
   }
   #endregion
 
   #region ===== Binding Detail Tables of Grid =====
   protected void grdAccomodationDetails_DetailTableDataBind(object source, Telerik.WebControls.GridDetailTableDataBindEventArgs e)
   {
       try
       {
           Telerik.WebControls.GridDataItem dataItem = (Telerik.WebControls.GridDataItem)e.DetailTableView.ParentItem;
           switch (e.DetailTableView.Name)
           {
               case "InnerAccomodationDetails":
                   {
                       string accomodationId = dataItem.GetDataKeyValue("AccomodationId").ToString();
                       e.DetailTableView.DataSource = megautsav.GetMegaUtsavAccomodationDetails(int.Parse(accomodationId));
                       break;
                   }
           }
       }
       catch (Exception ex)
       {
           LogHandler.LogError(long.Parse(Session["UserId"].ToString()), LogHandler.APPLICATION_ERROR, ex.StackTrace.ToString(), ex.Message.ToString());
           Response.Redirect("../Error.aspx?errmsg=" + HttpUtility.UrlEncode(ex.Message.ToString()));
       }
   }
   #endregion
 
   #region ===== ItemCreated Event of Grid =====
   protected void grdAccomodationDetails_ItemCreated(object source, Telerik.WebControls.GridItemEventArgs e)
   {
       if (isExport && (e.Item.ItemType == Telerik.WebControls.GridItemType.Item || e.Item.ItemType == Telerik.WebControls.GridItemType.AlternatingItem || e.Item.ItemType == Telerik.WebControls.GridItemType.Header))
       {
           e.Item.Cells[0].Visible = false;
       }
   }
   #endregion
 
   #region ===== Click of Export to Excel Linkbutton =====
   protected void lnkExcel_OnClick(object sender, EventArgs e)
   {
       try
       {
           isExport = true;
           grdAccomodationDetails.ExportSettings.ExportOnlyData = true;
           grdAccomodationDetails.ExportSettings.OpenInNewWindow = true;
 
           string fileName = "MegaMahotsav Accomodation Details";
           grdAccomodationDetails.ExportSettings.FileName = fileName;
           grdAccomodationDetails.MasterTableView.Width = Unit.Pixel(300);
            
 
           grdAccomodationDetails.MasterTableView.CommandItemDisplay = Telerik.WebControls.GridCommandItemDisplay.None;
           grdAccomodationDetails.MasterTableView.ShowFooter = false;
           grdAccomodationDetails.MasterTableView.ClearEditItems();
           grdAccomodationDetails.MasterTableView.ClearSelectedItems();
           grdAccomodationDetails.MasterTableView.HierarchyDefaultExpanded = true;           
           grdAccomodationDetails.MasterTableView.AllowPaging = false;           
            
           foreach (Telerik.WebControls.GridBoundColumn column in grdAccomodationDetails.MasterTableView.Columns)
           {
               column.Visible = true;
           
           grdAccomodationDetails.Rebind();
           grdAccomodationDetails.GridLines = GridLines.Both;
           grdAccomodationDetails.MasterTableView.ExportToExcel();
           grdAccomodationDetails.MasterTableView.AllowPaging = true;
       }
       catch (Exception ex)
       {
           throw (ex);
       }
   }
   #endregion
 
   #region ===== Click of Export to Excel (Master Data) Linkbutton =====
   protected void lnkExcelMaster_OnClick(object sender, EventArgs e)
   {
       try
       {
           isExport = true;
           grdAccomodationDetails.ExportSettings.ExportOnlyData = true;
           grdAccomodationDetails.ExportSettings.OpenInNewWindow = true;
 
           string fileName = "MegaMahotsav Accomodation Details Master";
           grdAccomodationDetails.ExportSettings.FileName = fileName;
           grdAccomodationDetails.MasterTableView.Width = Unit.Pixel(300);
 
           grdAccomodationDetails.MasterTableView.CommandItemDisplay = Telerik.WebControls.GridCommandItemDisplay.None;
           grdAccomodationDetails.MasterTableView.ShowFooter = false;
           grdAccomodationDetails.MasterTableView.ClearEditItems();
           grdAccomodationDetails.MasterTableView.ClearSelectedItems();
           grdAccomodationDetails.MasterTableView.HierarchyDefaultExpanded = false;
           grdAccomodationDetails.MasterTableView.AllowPaging = false;
 
           foreach (Telerik.WebControls.GridBoundColumn column in grdAccomodationDetails.MasterTableView.Columns)
           {
               column.Visible = true;
           }
           grdAccomodationDetails.Rebind();
           grdAccomodationDetails.GridLines = GridLines.Both;
           grdAccomodationDetails.MasterTableView.ExportToExcel();
           grdAccomodationDetails.MasterTableView.AllowPaging = true;
       }
       catch (Exception ex)
       {
           throw (ex);
       }
   }
   #endregion

3 Answers, 1 is accepted

Sort by
0
Manish
Top achievements
Rank 1
answered on 10 Nov 2010, 04:51 AM
Can anyone of the Telerik Administrators help me in solving this issue?
This issue is pending since a long time...
0
Accepted
Daniel
Telerik team
answered on 15 Nov 2010, 03:06 PM
Hello Manish,

Can you please check whether the control that initiates the export is not ajaxified. For more information, refer to the following link
Export from ajaxified grid

I hope this helps

Best regards,
Daniel
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
Manish
Top achievements
Rank 1
answered on 15 Nov 2010, 06:20 PM
Thanks a lot for your time.
I have removed the ajax part and now the download option works perfectly fine.

Thanks a lot for your help.
Tags
Grid
Asked by
Manish
Top achievements
Rank 1
Answers by
Manish
Top achievements
Rank 1
Daniel
Telerik team
Share this question
or