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

Export from Hierarchy Grid returns Object reference not set to an instance of an object.

5 Answers 213 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Sam
Top achievements
Rank 1
Sam asked on 06 Sep 2011, 10:30 AM
Hi, I have master child grid and export functionality in both parent as well as child grid. 
I do data binding in code behind. Export from the parent grid works fine but when user clicks on Export to Excel in child grid, it throws following exception.

Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.]
   Telerik.Web.UI.Grid.Export.TableViewExporter.ExcelExportRenderForm(HtmlTextWriter nullWriter, Control form) +878
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +109
   System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +8756077
   System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +31
   System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +53
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +40
   Telerik.Web.UI.Grid.Export.TableViewExporter.ExcelExportRenderPage(HtmlTextWriter nullWriter, Control page) +92
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +109
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Page.Render(HtmlTextWriter writer) +29
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3060

My ASPX template is:
       <telerik:RadGrid ID="RGModels" runat="server" Width="100%" ShowStatusBar="true" AutoGenerateColumns="false"
               PageSize="10" AllowSorting="True" AllowMultiRowSelection="False" AllowPaging="True"
                    AllowAutomaticInserts="false" OnInsertCommand="RGModels_InsertCommand" Visible="true">
                    <PagerStyle Mode="NextPrevAndNumeric"></PagerStyle>
                    <MasterTableView Width="100%" Name="Models" DataKeyNames="ID" AllowAutomaticInserts="false"
                        AllowMultiColumnSorting="True" AutoGenerateColumns="false" HierarchyLoadMode="ServerOnDemand"
                        CommandItemDisplay="Top" EditMode="PopUp">
                        <CommandItemSettings AddNewRecordText="New business model" ShowExportToExcelButton="true" />
                        <EditFormSettings InsertCaption="Add new business model" UserControlName="Templates\DeplObjectCreate.ascx"
                            EditFormType="WebUserControl">
                        </EditFormSettings>
                        <DetailTables>
                            <telerik:GridTableView DataKeyNames="ID" Name="Sets" Width="100%" CommandItemDisplay="Top"
                                EditMode="PopUp">
                                <CommandItemSettings AddNewRecordText="New business (release) set" ShowExportToExcelButton="true" />
                                <EditFormSettings InsertCaption="Add new business (release) set" UserControlName="Templates\DeplObjectCreate.ascx"
                                    EditFormType="WebUserControl">
                                </EditFormSettings>
                                <CommandItemStyle ForeColor="Yellow" />
                                <Columns>
                                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name" HeaderStyle-Width="20%"
                                        ItemStyle-HorizontalAlign="Left" />
                                    <telerik:GridBoundColumn DataField="Description" HeaderText="Description" HeaderStyle-Width="30%"
                                        ItemStyle-HorizontalAlign="Left" />
                                    <telerik:GridBoundColumn DataField="ShortName" HeaderText="Short name" HeaderStyle-Width="15%"
                                        ItemStyle-HorizontalAlign="Left" />
                                    <telerik:GridBoundColumn DataField="StateName" SortExpression="StateName" ReadOnly="True"
                                        HeaderText="<%$ Resources:WebResource, State %>">
                                        <HeaderStyle HorizontalAlign="Center" Width="10%" />
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn DataField="BeginDate" HeaderText="Begin date" DataFormatString="{0:dd-MMM-yyyy}">
                                        <HeaderStyle HorizontalAlign="Center" Width="10%" />
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn DataField="EndDate" HeaderText="End date" DataFormatString="{0:dd-MMM-yyyy}">
                                        <HeaderStyle HorizontalAlign="Center" Width="10%" />
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn DataField="ID" HeaderText="ID" HeaderStyle-Width="2%" ItemStyle-HorizontalAlign="Left" UniqueName="ID" />
                                    <telerik:GridBoundColumn DataField="ModelID" HeaderText="MID" HeaderStyle-Width="2%"
                                        ItemStyle-HorizontalAlign="Left" UniqueName="MID" />
                                    <telerik:GridTemplateColumn HeaderText="Account" UniqueName="ColumnRGModelsAccounts" >
                                        <ItemTemplate>
                                            <asp:ImageButton ID="LnkAccount" runat="server" Tooltip="Change deployment set parameters"
                                                     PostBackUrl='<%# "~/DeplAccounts.aspx?ProjectID=" & DataBinder.Eval (Container.DataItem,"DeploymentID").tostring & _   
                                                        "&ModelID=" & DataBinder.Eval(Container.DataItem,"ModelID").tostring & _
                                                        "&SetID=" & DataBinder.Eval(Container.DataItem,"ID").tostring %>'
                                                ImageUrl="./App_Themes/UP/bAccount.gif" meta:resourcekey="LnkEditResource1" />
                                        </ItemTemplate>
                                        <ItemStyle HorizontalAlign="Center" Width="5%" />
                                    </telerik:GridTemplateColumn>
                                    <telerik:GridTemplateColumn HeaderText="Review" UniqueName="ColumnRGModelsReview" >
                                        <ItemTemplate>
                                            <asp:ImageButton ID="LnkReview" runat="server" Tooltip="Review generated requests"
                                                     PostBackUrl='<%# "~/DeplReview.aspx?ProjectID=" & DataBinder.Eval (Container.DataItem,"DeploymentID").tostring & _   
                                                        "&ModelID=" & DataBinder.Eval(Container.DataItem,"ModelID").tostring & _
                                                        "&SetID=" & DataBinder.Eval(Container.DataItem,"ID").tostring %>'
                                                ImageUrl="./App_Themes/UP/bReview.gif" meta:resourcekey="LnkEditResource1" />
                                        </ItemTemplate>
                                        <ItemStyle HorizontalAlign="Center" Width="5%" />
                                    </telerik:GridTemplateColumn>
                                    <telerik:GridTemplateColumn HeaderText="Approve" UniqueName="ColumnRGModelsApprove" >
                                        <ItemTemplate>
                                            <asp:ImageButton ID="LnkApprove" runat="server" Tooltip="Approve changed requests"
                                                     PostBackUrl='<%# "~/DeplApprove.aspx?ProjectID=" & DataBinder.Eval (Container.DataItem,"DeploymentID").tostring & _   
                                                        "&ModelID=" & DataBinder.Eval(Container.DataItem,"ModelID").tostring & _
                                                        "&SetID=" & DataBinder.Eval(Container.DataItem,"ID").tostring %>'
                                                ImageUrl="./App_Themes/UP/Approve.gif" meta:resourcekey="LnkEditResource1" />
                                        </ItemTemplate>
                                        <ItemStyle HorizontalAlign="Center" Width="5%" />
                                    </telerik:GridTemplateColumn>
                                    <telerik:GridTemplateColumn HeaderText="Change" >
                                        <ItemTemplate>
                                            <asp:ImageButton ID="LnkEdit" runat="server" Tooltip="Change deployment set parameters"
                                                PostBackUrl='<%# DataBinder.Eval(Container, "DataItem.ID", "~/DeplBUSetDetails.aspx?ID={0}") %>'
                                                ImageUrl="./App_Themes/UP/Edit.gif" meta:resourcekey="LnkEditResource1" />
                                        </ItemTemplate>
                                        <ItemStyle HorizontalAlign="Center" Width="5%" />
                                    </telerik:GridTemplateColumn>
                                    <telerik:GridTemplateColumn HeaderText="Remove" meta:resourcekey="TemplateFieldResource2">
                                        <ItemTemplate>
                                            <asp:ImageButton ID="LnkRemove" runat="server" Visible="True" OnClientClick='<%# "DeplSetRemoveBtn(this,""" + DataBinder.Eval(Container.DataItem, "ID").ToString +  """, " + Westwind.Utilities.WebUtils.EncodeJsString(DataBinder.Eval(Container.DataItem, "Name")) +  "); return false;" %>'
                                                AlternateText="Remove deployment model" ToolTip="Assigned requests will be 'orphaned'"
                                                ImageUrl="./App_Themes/UP/bCut.gif" />
                                        </ItemTemplate>
                                        <ItemStyle HorizontalAlign="Center" Width="5%" />
                                    </telerik:GridTemplateColumn>
                                </Columns>
                            </telerik:GridTableView>
                        </DetailTables>
                        <Columns>
                            <telerik:GridBoundColumn DataField="Name" HeaderText="Name" HeaderStyle-Width="20%"
                                ItemStyle-HorizontalAlign="Left" />
                            <telerik:GridBoundColumn DataField="Description" HeaderText="Description" HeaderStyle-Width="30%"
                                ItemStyle-HorizontalAlign="Left" />
                            <telerik:GridBoundColumn DataField="ShortName" HeaderText="Short name" HeaderStyle-Width="15%"
                                ItemStyle-HorizontalAlign="Left" />
                            <telerik:GridBoundColumn DataField="StateName" SortExpression="StateName" ReadOnly="True"
                                HeaderText="<%$ Resources:WebResource, State %>">
                                <HeaderStyle HorizontalAlign="Center" Width="10%" />
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="BeginDate" HeaderText="Begin date" DataFormatString="{0:dd-MMM-yyyy}">
                                <HeaderStyle HorizontalAlign="Center" Width="10%" />
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="EndDate" HeaderText="End date" DataFormatString="{0:dd-MMM-yyyy}">
                                <HeaderStyle HorizontalAlign="Center" Width="10%" />
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="ID" HeaderText="ID" HeaderStyle-Width="2%" ItemStyle-HorizontalAlign="Left" UniqueName="ID" />
                            <telerik:GridBoundColumn DataField="DeplID" HeaderText="DID" HeaderStyle-Width="2%"
                                ItemStyle-HorizontalAlign="Left"  UniqueName="DID" />
                            <telerik:GridTemplateColumn HeaderText="Change" meta:resourcekey="TemplateField">
                                <ItemTemplate>
                                    <asp:ImageButton ID="LnkEdit" runat="server" AlternateText="Change deployment model parameters"
                                        PostBackUrl='<%# DataBinder.Eval(Container, "DataItem.ID", "~/DeplBUModelDetails.aspx?ID={0}") %>'
                                        ImageUrl="./App_Themes/UP/Edit.gif" meta:resourcekey="LnkEditResource1" />
                                </ItemTemplate>
                                <ItemStyle HorizontalAlign="Center" Width="5%" />
                            </telerik:GridTemplateColumn>
                            <telerik:GridTemplateColumn HeaderText="Remove" meta:resourcekey="TemplateFieldResource2">
                                <ItemTemplate>
                                    <asp:ImageButton ID="LnkRemove" runat="server" Visible="True" OnClientClick='<%# "DeplModelRemoveBtn(this,""" + DataBinder.Eval(Container.DataItem, "ID").ToString +  """, " + Westwind.Utilities.WebUtils.EncodeJsString(DataBinder.Eval(Container.DataItem, "Name")) +  "); return false;" %>'
                                        AlternateText="Remove business model" ToolTip="Will also remove sibling business sets"
                                        ImageUrl="./App_Themes/UP/bCut.gif" />
                                </ItemTemplate>
                                <ItemStyle HorizontalAlign="Center" Width="5%" />
                            </telerik:GridTemplateColumn>
                        </Columns>
                    </MasterTableView>
                </telerik:RadGrid>

code behind:
 Private Sub RGModels_ItemCreated(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles RGModels.ItemCreated


            '   4 build-in export buttons
            'ExportToExcelButton()
            'ExportToWordButton()
            'ExportToPdfButton()
            'ExportToCsvButton()


            If TypeOf e.Item Is GridCommandItem Then
                Dim ExportToExcelButton As Button = TryCast(TryCast(e.Item, GridCommandItem).FindControl("ExportToExcelButton"), Button)
                If Not ExportToExcelButton Is Nothing Then ScriptManager.GetCurrent(Me.Page).RegisterPostBackControl(ExportToExcelButton)
                Dim ExportToWordButton As Button = TryCast(TryCast(e.Item, GridCommandItem).FindControl("ExportToWordButton"), Button)
                If Not ExportToWordButton Is Nothing Then ScriptManager.GetCurrent(Me.Page).RegisterPostBackControl(ExportToWordButton)
                Dim ExportToPdfButton As Button = TryCast(TryCast(e.Item, GridCommandItem).FindControl("ExportToPdfButton"), Button)
                If Not ExportToPdfButton Is Nothing Then ScriptManager.GetCurrent(Me.Page).RegisterPostBackControl(ExportToPdfButton)
                Dim ExportToCsvButton As Button = TryCast(TryCast(e.Item, GridCommandItem).FindControl("ExportToCsvButton"), Button)
                If Not ExportToCsvButton Is Nothing Then ScriptManager.GetCurrent(Me.Page).RegisterPostBackControl(ExportToCsvButton)
            End If
        End Sub


        Private Sub RGModels_ItemCommand(sender As Object, e As Telerik.Web.UI.GridCommandEventArgs) Handles RGModels.ItemCommand
            If e.CommandName = Telerik.Web.UI.RadGrid.ExportToExcelCommandName OrElse e.CommandName = Telerik.Web.UI.RadGrid.ExportToWordCommandName OrElse e.CommandName = Telerik.Web.UI.RadGrid.ExportToCsvCommandName Then
                sender.ExportSettings.ExportOnlyData = True
                sender.ExportSettings.IgnorePaging = True
                sender.ExportSettings.OpenInNewWindow = True
                sender.ExportSettings.HideStructureColumns = True
                sender.MasterTableView.HierarchyDefaultExpanded = True
                sender.ExportSettings.Excel.Format = GridExcelExportFormat.ExcelML
                Select Case e.CommandName
                    Case "ExportToExcel"
                        sender.MasterTableView.ExportToExcel()
                    Case "ExportToWord"
                        sender.MasterTableView.ExportToWord()
                End Select
            End If
        End Sub

5 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 06 Sep 2011, 11:13 AM
Hi Sam,

The issue occurs by the fact that you are using simple databinding to populate the RadGrid. In order to use export to ExcelML, you should bind the grid control through AdvancedDataBinding or declaratively by DataSourceControl.

For more information about this can be available here.
Advanced Data-binding (using NeedDataSource event).
Declarative DataSource
ExcelML basics.

Thanks,
Shinu.
0
Sam
Top achievements
Rank 1
answered on 06 Sep 2011, 12:45 PM
Hi,
Thanks for getting back to me.
We do use advance data binding in        DetailTableDataBind an I've debugged through it and it does call the routine to set the datasource when we click on export button on child grid.

I've copied the function below.

  Private Sub RGModels_DetailTableDataBind(ByVal source As Object, ByVal e As GridDetailTableDataBindEventArgs) Handles RGModels.DetailTableDataBind
            Dim MyUserInfo As UsersDB = New UsersDB
            Dim MyUserDetails As UserDetails = MyUserInfo.GetUserDetails(HttpContext.Current.User.Identity.Name, Nothing)
            Dim BeginDate As DateTime
            Dim EndDate As DateTime
            Dim dataItem As GridDataItem = CType(e.DetailTableView.ParentItem, GridDataItem)
            Dim culture As System.Globalization.CultureInfo = New System.Globalization.CultureInfo("en-GB")
            'culture = My.Application.Culture - default to en-GB
            Dim styles As System.Globalization.DateTimeStyles
            Dim dateResult As DateTime
            styles = System.Globalization.DateTimeStyles.None
            If DateTime.TryParse(dataItem.Item("BeginDate").Text, culture, styles, dateResult) Then
                Console.WriteLine("{0} converted to {1} {2}.", BeginDate, dateResult, dateResult.Kind)
                BeginDate = dateResult
            Else
                Console.WriteLine("Unable to convert {0} to a date and time.", BeginDate)
            End If
            If DateTime.TryParse(dataItem.Item("EndDate").Text, culture, styles, dateResult) Then
                Console.WriteLine("{0} converted to {1} {2}.", EndDate, dateResult, dateResult.Kind)
                EndDate = dateResult
            Else
                Console.WriteLine("Unable to convert {0} to a date and time.", EndDate)
            End If
            Dim ID As Long = dataItem.GetDataKeyValue("ID").ToString()
            Select Case e.DetailTableView.Name
                Case "Sets"
           
        e.DetailTableView.DataSource = GetSets(ID, BeginDate, EndDate)
                    '
                    '   Check if columns can be displayed, we've review columns & approve columns
                    '
                    Dim MyMenusDB As MenusDB = New MenusDB
                    Dim myPage As String = Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf("/") + 1, Request.Url.AbsolutePath.Length - Request.Url.AbsolutePath.LastIndexOf("/") - 1)
                    Dim MyPageDetails As UIObjectDetails = MyMenusDB.GetUIObjectDetails(MyUserDetails.UserID, MyUserDetails.LanguageUPShortname, 0, Constants.TYPE_UIPAGE, myPage)
                    Call CheckColumns(MyUserDetails.UserID, MyUserDetails.LanguageUPShortname, MyPageDetails.ID, e.DetailTableView)
                    If MyUserDetails.InternalInfo <> 1 Then
                        e.DetailTableView.Columns.FindByUniqueName("ID").Display = False
                        e.DetailTableView.Columns.FindByUniqueName("MID").Display = False
                    End If
            End Select
        End Sub

0
Daniel
Telerik team
answered on 07 Sep 2011, 12:53 PM
Hello Sam,

In most cases this exception occurs when there is a databinding-related problem. Could you please post the rest of your code (or at least the NeedDataSource handler) to see if I could find the root cause?

Best regards,
Daniel
the Telerik team

Thank you for being the most amazing .NET community! Your unfailing support is what helps us charge forward! We'd appreciate your vote for Telerik in this year's DevProConnections Awards. We are competing in mind-blowing 20 categories and every vote counts! VOTE for Telerik NOW >>

0
Sam
Top achievements
Rank 1
answered on 07 Sep 2011, 03:32 PM
For your information: I want to export only child grid for the expanded master record. In RGModels_ItemCommand the funciton does sender.MasterTableView.ExportToExcel()  . Is this right to export only child list for expanded parent row as I could not see any properties of GridCommandEventArgs to differentiate weather the call is from parent or child export.


Below is the code for NeedDataSource, I do not bind detail grid in there as it is already been done in the  DetailTableDataBind.


Private Sub RGModels_NeedDataSource(ByVal source As Object, ByVal e As GridNeedDataSourceEventArgs) Handles RGModels.NeedDataSource
            If Not e.IsFromDetailTable Then
                Dim MyUserInfo As UsersDB = New UsersDB
                Dim MyUserDetails As UserDetails = MyUserInfo.GetUserDetails(HttpContext.Current.User.Identity.Name, Nothing)
                Dim MyDeploymentDB As DeploymentDB = New DeploymentDB
                Dim MyDeploymentDetails As DeploymentDetails = New DeploymentDetails
                If ViewState("MyDeploymentDetails") Is Nothing Then
                    CType(Master.FindControl("Message"), Label).Text = "MyDeploymentDetails viewstate does not exist when populating tab (PopulateGrid)"
                    Exit Sub
                Else
                    MyDeploymentDetails = ViewState("MyDeploymentDetails")
                End If
                Dim BeginDate As DateTime
                Dim EndDate As DateTime
                Dim culture As System.Globalization.CultureInfo = New System.Globalization.CultureInfo("en-GB")
                'culture = My.Application.Culture - default to en-GB
                Dim styles As System.Globalization.DateTimeStyles
                Dim dateResult As DateTime
                styles = System.Globalization.DateTimeStyles.None
                If DateTime.TryParse(MyDeploymentDetails.BeginDate, culture, styles, dateResult) Then
                    Console.WriteLine("{0} converted to {1} {2}.", BeginDate, dateResult, dateResult.Kind)
                    BeginDate = dateResult
                Else
                    Console.WriteLine("Unable to convert {0} to a date and time.", BeginDate)
                End If
                If DateTime.TryParse(MyDeploymentDetails.EndDate, culture, styles, dateResult) Then
                    Console.WriteLine("{0} converted to {1} {2}.", EndDate, dateResult, dateResult.Kind)
                    EndDate = dateResult
                Else
                    Console.WriteLine("Unable to convert {0} to a date and time.", EndDate)
                End If
                Dim ID As Long = MyDeploymentDetails.ID
                RGModels.DataSource = GetModels(ID, BeginDate, EndDate)
                'RGModels.DataBind()
                If MyUserDetails.InternalInfo <> 1 Then
                    RGModels.Columns.FindByUniqueName("ID").Display = False
                    RGModels.Columns.FindByUniqueName("DID").Display = False
                End If


            End If
        End Sub

Private Sub RGModels_DetailTableDataBind(ByVal source As Object, ByVal e As GridDetailTableDataBindEventArgs) Handles RGModels.DetailTableDataBind
            Dim MyUserInfo As UsersDB = New UsersDB
            Dim MyUserDetails As UserDetails = MyUserInfo.GetUserDetails(HttpContext.Current.User.Identity.Name, Nothing)
            Dim BeginDate As DateTime
            Dim EndDate As DateTime
            Dim dataItem As GridDataItem = CType(e.DetailTableView.ParentItem, GridDataItem)
            Dim culture As System.Globalization.CultureInfo = New System.Globalization.CultureInfo("en-GB")
            'culture = My.Application.Culture - default to en-GB
            Dim styles As System.Globalization.DateTimeStyles
            Dim dateResult As DateTime
            styles = System.Globalization.DateTimeStyles.None
            If DateTime.TryParse(dataItem.Item("BeginDate").Text, culture, styles, dateResult) Then
                Console.WriteLine("{0} converted to {1} {2}.", BeginDate, dateResult, dateResult.Kind)
                BeginDate = dateResult
            Else
                Console.WriteLine("Unable to convert {0} to a date and time.", BeginDate)
            End If
            If DateTime.TryParse(dataItem.Item("EndDate").Text, culture, styles, dateResult) Then
                Console.WriteLine("{0} converted to {1} {2}.", EndDate, dateResult, dateResult.Kind)
                EndDate = dateResult
            Else
                Console.WriteLine("Unable to convert {0} to a date and time.", EndDate)
            End If
            Dim ID As Long = dataItem.GetDataKeyValue("ID").ToString()
            Select Case e.DetailTableView.Name
                Case "Sets"
                    e.DetailTableView.DataSource = GetSets(ID, BeginDate, EndDate)
                    '
                    '   Check if columns can be displayed, we've review columns & approve columns
                    '
                    Dim MyMenusDB As MenusDB = New MenusDB
                    Dim myPage As String = Request.Url.AbsolutePath.Substring(Request.Url.AbsolutePath.LastIndexOf("/") + 1, Request.Url.AbsolutePath.Length - Request.Url.AbsolutePath.LastIndexOf("/") - 1)
                    Dim MyPageDetails As UIObjectDetails = MyMenusDB.GetUIObjectDetails(MyUserDetails.UserID, MyUserDetails.LanguageUPShortname, 0, Constants.TYPE_UIPAGE, myPage)
                    Call CheckColumns(MyUserDetails.UserID, MyUserDetails.LanguageUPShortname, MyPageDetails.ID, e.DetailTableView)
                    If MyUserDetails.InternalInfo <> 1 Then
                        e.DetailTableView.Columns.FindByUniqueName("ID").Display = False
                        e.DetailTableView.Columns.FindByUniqueName("MID").Display = False
                    End If
            End Select
        End Sub


      Private Sub RGModels_ItemCommand(sender As Object, e As Telerik.Web.UI.GridCommandEventArgs) Handles RGModels.ItemCommand
            If e.CommandName = Telerik.Web.UI.RadGrid.ExportToExcelCommandName OrElse e.CommandName = Telerik.Web.UI.RadGrid.ExportToWordCommandName OrElse e.CommandName = Telerik.Web.UI.RadGrid.ExportToCsvCommandName Then
                sender.ExportSettings.ExportOnlyData = True
                sender.ExportSettings.IgnorePaging = True
                sender.ExportSettings.OpenInNewWindow = True
                sender.ExportSettings.HideStructureColumns = True
                sender.MasterTableView.HierarchyDefaultExpanded = True
                sender.ExportSettings.Excel.Format = GridExcelExportFormat.ExcelML
                Select Case e.CommandName
                    Case "ExportToExcel"
                        sender.MasterTableView.ExportToExcel()
                    Case "ExportToWord"
                        sender.MasterTableView.ExportToWord()
                End Select
            End If
        End Sub
0
Daniel
Telerik team
answered on 09 Sep 2011, 02:14 PM
Hello Sam,

You could differentiate the source table using the e.Item.OwnerTableView property like shown below:
Protected Sub RadGrid1_ItemCommand(sender As Object, e As GridCommandEventArgs)
    If e.Item.OwnerTableView.Name = "MyDetailTable" Then
            'more code
    End If
End Sub

<DetailTables>
    <telerik:GridTableView Name="MyDetailTable">
    </telerik:GridTableView>
</DetailTables>

I'm afraid, however, that RadGrid does not support exporting of separate tableviews out of the box (although this may work in some scenarios).
Please excuse us for any inconvenience caused.

Best regards,
Daniel
the Telerik team

Thank you for being the most amazing .NET community! Your unfailing support is what helps us charge forward! We'd appreciate your vote for Telerik in this year's DevProConnections Awards. We are competing in mind-blowing 20 categories and every vote counts! VOTE for Telerik NOW >>

Tags
Grid
Asked by
Sam
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Sam
Top achievements
Rank 1
Daniel
Telerik team
Share this question
or