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

RadGrid Export to Excel

2 Answers 191 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Nelson
Top achievements
Rank 1
Nelson asked on 28 Jan 2020, 04:40 AM
Hello everyone, I'm encountering some issues when I tried to export excel from Grid. I added three GridTemplateColumn which contained buttons in those template columns. The Export To Excel button is added with Telerik RadButton separately because of user requirement. When I clicked the export to excel button, the button inside of the GridTemplateColumn becomes null value. Can someone help me how to solve it?

The following code is my Telerik Grid
<telerik:RadGrid ID="RadGridSalesOrder" runat="server" Width="100%" Height="600px"
                        OnNeedDataSource="RadGridSalesOrder_NeedDataSource" OnItemDataBound="RadGridSalesOrder_ItemDataBound"
                        OnBiffExporting="RadGridSalesOrder_BiffExporting" OnPreRender="RadGridSalesOrder_PreRender"
                        GridLines="None" AllowSorting="false" ShowGroupPanel="false" ShowFooter="false"
                        CellSpacing="0" AutoGenerateColumns="False" RenderMode="Auto"
                        ClientSettings-Selecting-AllowRowSelect="true" FooterStyle-Height="20px"
                        EnableHeaderContextFilterMenu="True" AllowPaging="true" PageSize="2000" AllowMultiRowSelection="false"
                        MasterTableView-EnableHeaderContextFilterMenu="true" EnableLinqExpressions="False" EnableHeaderContextMenu="True">
                        <ClientSettings AllowRowsDragDrop="false" AllowColumnsReorder="true" Resizing-AllowColumnResize="true" ReorderColumnsOnClient="true">
                            <ClientEvents OnCommand="GridCommand" />
                            <Scrolling AllowScroll="True" UseStaticHeaders="True" SaveScrollPosition="false" ScrollHeight="250"></Scrolling>
                            <Selecting AllowRowSelect="True" EnableDragToSelectRows="true" />
                        </ClientSettings>
                        <ExportSettings FileName="SalesOrderApprovalList" IgnorePaging="true">
                            <Excel Format="Biff" />
                        </ExportSettings>
                        <GroupingSettings CaseSensitive="false" />
                        <MasterTableView DataKeyNames="OrderID,BranchID,CustomerID,CustomerInfo,OrderDate,DeliveryDate,Address"
                            AllowMultiColumnSorting="True" AllowPaging="true"
                            ClientDataKeyNames="OrderID,BranchID,CustomerID,CustomerInfo,Address,SalesPersonID,Remark,OrderDate,DeliveryDate"
                             PagerStyle-PageSizes="500,1000,1500,2000" AllowFilteringByColumn="true" AutoGenerateColumns="false" ShowHeadersWhenNoRecords="true">
                            <Columns>
                                <telerik:GridButtonColumn UniqueName="Update" ButtonType="ImageButton" ImageUrl="../images/icons8-window-settings-20.png" HeaderText="Open" Text="Open" CommandName="Open">
                                    <HeaderStyle Width="40px" />
                                    <ItemStyle Width="40px" HorizontalAlign="Center" />
                                </telerik:GridButtonColumn>
 
                                <telerik:GridTemplateColumn HeaderText="No" UniqueName="RowNumber" AllowFiltering="false">
                                    <ItemTemplate>
                                        <asp:Label runat="server" ID="lblRowNumber" Width="50px" Text='<%# Container.DataSetIndex+1 %>'></asp:Label>
                                    </ItemTemplate>
                                    <ItemStyle Width="30px" />
                                    <HeaderStyle Width="30px" />
                                </telerik:GridTemplateColumn>
 
                                 <telerik:GridTemplateColumn UniqueName="Approve" HeaderStyle-Width="90px" ShowFilterIcon="false" AllowFiltering="false">
                                    <ItemTemplate>
                                        <div style="text-align: center;">
                                            <telerik:RadButton ID="btnApprove" runat="server" AutoPostBack="true" Text="Approve" OnClientClicking="OnClientClicking" OnClick="btnApprove_Click">
                                            </telerik:RadButton>
                                        </div>
                                    </ItemTemplate>
                                    <ItemStyle Width="90px" />
                                </telerik:GridTemplateColumn>
 
                                <telerik:GridTemplateColumn UniqueName="BatchExpiry" AllowFiltering="false">
                                        <ItemTemplate>
                                       <%-- <asp:LinkButton ID="btnAddBatch" Text="Add Batch" runat="server">
                                        </asp:LinkButton>--%>
                                         <%-- <telerik:RadLinkButton ID="btnAddBatch" runat="server" Text="Add Batch">
                                               
                                          </telerik:RadLinkButton>--%>
                                          <telerik:RadButton ID="btnAddBatch" runat="server" Text="Add Batch" AutoPostBack="true" OnClick="btnAddBatch_Click"></telerik:RadButton>
                                    </ItemTemplate>
                                    <ItemStyle Width="45px" />
                                    <HeaderStyle Width="45px" />
                                </telerik:GridTemplateColumn>
 
                                <telerik:GridBoundColumn DataField="IsReserved" AllowFiltering="true" HeaderText="Is Reserved" UniqueName="IsReserved"
                                    ShowFilterIcon="false" FilterControlWidth="75px"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains">
                                    <HeaderStyle Width="90px" />
                                    <ItemStyle Width="90px" />
                                </telerik:GridBoundColumn>
 
                                <telerik:GridBoundColumn DataField="OrderID" AllowFiltering="true" HeaderText="Order ID" UniqueName="OrderID"
                                    ShowFilterIcon="false" FilterControlWidth="100px"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains">
                                    <HeaderStyle Width="110px" />
                                    <ItemStyle Width="110px" />
                                </telerik:GridBoundColumn>
 
                                <telerik:GridBoundColumn DataField="BranchID" AllowFiltering="false" HeaderText="Branch ID" UniqueName="BranchID"
                                    ShowFilterIcon="false" FilterControlWidth="100px" Visible="false"
                                    AutoPostBackOnFilter="false" CurrentFilterFunction="Contains">
                                    <HeaderStyle Width="110px" />
                                    <ItemStyle Width="110px" />
                                </telerik:GridBoundColumn>
 
                                <telerik:GridBoundColumn DataField="SalesPersonName" HeaderText="Sales Person" UniqueName="SalesPersonName"
                                    ShowFilterIcon="false" FilterControlWidth="105px" AllowFiltering="true"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains">
                                    <HeaderStyle Width="120px" />
                                    <ItemStyle Width="120px" />
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn DataField="CustomerID" AllowFiltering="true" HeaderText="Customer ID" Visible="true" UniqueName="CustomerID"
                                    ShowFilterIcon="false" FilterControlWidth="110px"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains">
                                    <HeaderStyle Width="130px" />
                                    <ItemStyle Width="130px" />
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn DataField="CustomerName" HeaderText="Name" UniqueName="CustomerName"
                                    ShowFilterIcon="false" FilterControlWidth="150px" AllowFiltering="true"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains">
                                    <HeaderStyle Width="189px" />
                                    <ItemStyle Width="189px" />
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn DataField="CustomerInfo" HeaderText="Customer Info" UniqueName="CustomerInfo"
                                    ShowFilterIcon="false" FilterControlWidth="150px" AllowFiltering="false" Visible="false"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains">
                                    <HeaderStyle Width="189px" />
                                    <ItemStyle Width="189px" />
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn DataField="Address" HeaderText="Address" UniqueName="Address"
                                    ShowFilterIcon="false" FilterControlWidth="170px" AllowFiltering="true" Visible="true"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains">
                                    <HeaderStyle Width="189px" />
                                    <ItemStyle Width="189px" />
                                </telerik:GridBoundColumn>
 
                                 <telerik:GridBoundColumn DataField="Township" HeaderText="Township" UniqueName="Township"
                                    ShowFilterIcon="false" FilterControlWidth="120px" AllowFiltering="true" Visible="true"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains">
                                    <HeaderStyle Width="150px" />
                                    <ItemStyle Width="150px" />
                                </telerik:GridBoundColumn>
 
                                <telerik:GridBoundColumn DataField="OrderDate" AllowFiltering="false" HeaderText="Order Date" UniqueName="OrderDate"
                                    ShowFilterIcon="false" FilterControlWidth="110px"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" >
                                    <HeaderStyle Width="85px" />
                                    <ItemStyle Width="85px" />
                                </telerik:GridBoundColumn>
 
                                <telerik:GridBoundColumn DataField="DeliveryDate" AllowFiltering="false" HeaderText="Delivery Date" UniqueName="DeliveryDate"
                                    ShowFilterIcon="false" FilterControlWidth="110px"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" >
                                    <HeaderStyle Width="85px" />
                                    <ItemStyle Width="85px" />
                                </telerik:GridBoundColumn>
 
 
                                <telerik:GridBoundColumn DataField="DeliveryVan" AllowFiltering="true" HeaderText="Delivery Van" UniqueName="DeliveryVan"
                                    ShowFilterIcon="false" FilterControlWidth="100px"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" >
                                    <HeaderStyle Width="110px" />
                                    <ItemStyle Width="110px" />
                                </telerik:GridBoundColumn>
 
                                <telerik:GridBoundColumn UniqueName="SalesPersonID" DataField="SalesPersonID" AllowFiltering="true" ShowFilterIcon="false" FilterControlWidth="100px"
                                    HeaderText="SalesPerson ID" Visible="false" CurrentFilterFunction="Contains" AutoPostBackOnFilter="true">
                                </telerik:GridBoundColumn>
 
                                 <telerik:GridBoundColumn DataField="Remark" HeaderText="Remark" UniqueName="Remark"
                                    ShowFilterIcon="false" FilterControlWidth="84px" AllowFiltering="true"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" >
                                    <HeaderStyle Width="104px" />
                                    <ItemStyle Width="104px" />
                                </telerik:GridBoundColumn>
 
                                 <telerik:GridBoundColumn DataField="SyncDateTime" HeaderText="Sync Date" UniqueName="SyncDateTime"
                                    ShowFilterIcon="false" FilterControlWidth="84px" AllowFiltering="false"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" >
                                    <HeaderStyle Width="85px" />
                                    <ItemStyle Width="85px" />
                                </telerik:GridBoundColumn>
 
                                 <telerik:GridBoundColumn DataField="ExportDateTime" HeaderText="Export Date" UniqueName="ExportDateTime"
                                    ShowFilterIcon="false" FilterControlWidth="84px" AllowFiltering="false"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" >
                                    <HeaderStyle Width="85px" />
                                    <ItemStyle Width="85px" />
                                </telerik:GridBoundColumn>
 
                                <telerik:GridBoundColumn DataField="ExportStatus" HeaderText="Export Status" UniqueName="ExportStatus"
                                    ShowFilterIcon="false" FilterControlWidth="75px" AllowFiltering="true"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" >
                                    <HeaderStyle Width="85px" />
                                    <ItemStyle Width="85px" />
                                </telerik:GridBoundColumn>
 
                                <telerik:GridBoundColumn DataField="ExportRemark" HeaderText="Export Remark" UniqueName="ExportRemark"
                                    ShowFilterIcon="false" FilterControlWidth="84px" AllowFiltering="true"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" >
                                    <HeaderStyle Width="104px" />
                                    <ItemStyle Width="104px" />
                                </telerik:GridBoundColumn>
 
                               <telerik:GridBoundColumn DataField="ApprovedBy" HeaderText="Approved By" UniqueName="ApprovedBy"
                                    ShowFilterIcon="false" FilterControlWidth="84px" AllowFiltering="true"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" >
                                    <HeaderStyle Width="104px" />
                                    <ItemStyle Width="104px" />
                                </telerik:GridBoundColumn>
 
                                 <telerik:GridBoundColumn DataField="ApprovedDate" HeaderText="Approved Date" UniqueName="ApprovedDate"
                                    ShowFilterIcon="false" FilterControlWidth="84px" AllowFiltering="false"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" >
                                    <HeaderStyle Width="85px" />
                                    <ItemStyle Width="85px" />
                                </telerik:GridBoundColumn>
 
                                <telerik:GridBoundColumn DataField="RejectedBy" HeaderText="Rejected By" UniqueName="RejectedBy"
                                    ShowFilterIcon="false" FilterControlWidth="84px" AllowFiltering="true"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" >
                                    <HeaderStyle Width="104px" />
                                    <ItemStyle Width="104px" />
                                </telerik:GridBoundColumn>
 
                                 <telerik:GridBoundColumn DataField="RejectedDate" HeaderText="Rejected Date" UniqueName="RejectedDate"
                                    ShowFilterIcon="false" FilterControlWidth="84px" AllowFiltering="false"
                                    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" >
                                    <HeaderStyle Width="85px" />
                                    <ItemStyle Width="85px" />
                                </telerik:GridBoundColumn>
 
 
 
                                 
 
                                <%--<telerik:GridBoundColumn DataField="DeliveryStatus" HeaderText="Status" UniqueName="Status" Visible="false"
                                    ShowFilterIcon="false" FilterControlWidth="170px" AllowFiltering="true" AutoPostBackOnFilter="true">
                                    <HeaderStyle Width="50px" />
                                    <ItemStyle Width="50px" />
                                </telerik:GridBoundColumn>--%>
                            </Columns>
                            <PagerStyle AlwaysVisible="True"></PagerStyle>
                            <GroupFooterTemplate>
                            </GroupFooterTemplate>
                        </MasterTableView>
                        <PagerStyle UseRouting="True" Mode="NumericPages" ShowPagerText="False" />
 
                    </telerik:RadGrid>

 

2 Answers, 1 is accepted

Sort by
0
Accepted
Eyup
Telerik team
answered on 30 Jan 2020, 11:51 AM

Hi Nelson,

 

Here are some suggestions that may help you resolve the issue:

1. This probably happens because the controls are not generated during the exporting action. You can manually try to add the text during exporting as demonstrated in this section:
https://docs.telerik.com/devtools/aspnet-ajax/controls/grid/functionality/exporting/overview#export-template-columns

2. You can also try enabling the following property:

        <telerik:RadGrid ... >
            <ExportSettings IgnorePaging="true">
            </ExportSettings>
        </telerik:RadGrid>
3. You can wrap the btnApprove logic inside an if statement as follows: 

if (!RadGrid1.IsExporting){ ... }

I hope this will prove helpful.

Regards,
Eyup
Progress Telerik

Get quickly onboarded and successful with UI for ASP.NET AJAX with the Virtual Classroom technical trainings, available to all active customers. Learn More.
0
Nelson
Top achievements
Rank 1
answered on 18 Feb 2020, 05:36 AM
Thanks for your help. I can solve now.
Tags
Grid
Asked by
Nelson
Top achievements
Rank 1
Answers by
Eyup
Telerik team
Nelson
Top achievements
Rank 1
Share this question
or