RadGrid Export to Excel

3 posts, 1 answers
  1. Nelson
    Nelson avatar
    3 posts
    Member since:
    Apr 2018

    Posted 27 Jan Link to this post

    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. Answer
    Eyup
    Admin
    Eyup avatar
    4027 posts

    Posted 30 Jan Link to this post

    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.
  3. Nelson
    Nelson avatar
    3 posts
    Member since:
    Apr 2018

    Posted 17 Feb in reply to Eyup Link to this post

    Thanks for your help. I can solve now.
Back to Top