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

Problem exporting Excel from a Radgrid with LLBLGen TypedList

1 Answer 48 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Joost
Top achievements
Rank 1
Joost asked on 05 Jul 2013, 08:36 AM
Hi Telerik,

I'm having issues with exporting a radgrid that uses a typedlist as datasource. Everything works fine until a sort a column. When a column is sorted and I export the grid to excel i get this error -> System.Data.RowNotInTableException. 
When I use a collection

Stacktrace:

[RowNotInTableException: Deze rij is verwijderd uit een tabel en bevat geen gegevens. Met BeginEdit() kunnen nieuwe gegevens worden gemaakt in deze rij.]
   System.Data.DataRow.GetDefaultRecord() +6224209
   System.Data.DataColumnPropertyDescriptor.GetValue(Object component) +77
   Telerik.Web.UI.GridBoundColumn.OnDataBindColumn(Object sender, EventArgs e) +783
   System.Web.UI.Control.OnDataBinding(EventArgs e) +132
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +170
   System.Web.UI.Control.DataBindChildren() +11058975
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +182
   Telerik.Web.UI.GridItem.SetupItem(Boolean dataBind, Object dataItem, GridColumn[] columns, ControlCollection rows) +756
   Telerik.Web.UI.GridItemBuilder.InitializeItem(Int32 dataSourceIndex, String& nextItemHierarchicalIndex, Boolean& itemIsInEditMode) +192
   Telerik.Web.UI.GridItemBuilder.CreateItems(GridGroupingContext group) +438
   Telerik.Web.UI.GridTableView.CreateControlHierarchy(Boolean useDataSource) +1048
   Telerik.Web.UI.GridTableView.CreateChildControls(IEnumerable dataSource, Boolean useDataSource) +608
   System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +72
   System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +147
   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +261
   Telerik.Web.UI.GridTableView.PerformSelect() +23
   Telerik.Web.UI.GridTableView.DataBind() +363
   Telerik.Web.UI.RadGrid.DataBind() +73
   Telerik.Web.UI.RadGrid.AutoDataBind(GridRebindReason rebindReason) +2600
   Telerik.Web.UI.RadGrid.RebindForExport() +119
   Telerik.Web.UI.Grid.Export.TableViewExporter.ExcelExportRenderForm(HtmlTextWriter nullWriter, Control form) +1031
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +115
   System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +411
   System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +87
   System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +53
   Telerik.Web.UI.Grid.Export.TableViewExporter.ExcelExportRenderPage(HtmlTextWriter nullWriter, Control page) +145
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +115
   System.Web.UI.Page.Render(HtmlTextWriter writer) +38
   Telerik.Web.UI.RadAjaxControl.RenderPageInAjaxMode(HtmlTextWriter writer, Control page) +647
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +115
   System.Web.UI.Page.Render(HtmlTextWriter writer) +38
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4240

Aspx page:

<script type="text/javascript">
     function onRequestStart(sender, args) {
         if (args.get_eventTarget().indexOf("ExportTo") >= 0) {
             args.set_enableAjax(false);
         }
     }
 </script>
 <telerik:RadAjaxManagerProxy runat="server" ID="RadAjaxManagerProxy">
     <AjaxSettings>
         <telerik:AjaxSetting AjaxControlID="rgPerson">
             <UpdatedControls>
                 <telerik:AjaxUpdatedControl ControlID="rgPerson" LoadingPanelID="RadAjaxLoadingPanel" />
             </UpdatedControls>
         </telerik:AjaxSetting>
     </AjaxSettings>
 </telerik:RadAjaxManagerProxy>
 <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel" runat="server" />
 <telerik:RadGrid ID="rgPerson" GridLines="None" ShowStatusBar="true" AllowPaging="true"
     PageSize="15" Width="100%" AllowSorting="true" runat="server" AutoGenerateColumns="False"
     AllowFilteringByColumn="true" OnNeedDataSource="rgPerson_OnNeedDataSource" OnExcelMLExportRowCreated="rgPerson_OnExcelMLExportRowCreated"
     OnExcelMLExportStylesCreated="rgPerson_OnExcelMLExportStylesCreated">
     <MasterTableView Width="100%" CommandItemDisplay="Top" UseAllDataFields="true" >
         <CommandItemSettings ShowExportToExcelButton="true" ShowAddNewRecordButton="false" />
         <Columns>
             <telerik:GridBoundColumn DataField="Name" UniqueName="FullName" SortExpression="FullName"
                 CurrentFilterFunction="Contains" ShowFilterIcon="false" AutoPostBackOnFilter="true"
                 DataType="System.String" />
         </Columns>
     </MasterTableView>
     <ExportSettings ExportOnlyData="true" IgnorePaging="true">
         <Excel Format="ExcelML"></Excel>
     </ExportSettings>
 </telerik:RadGrid>
 <rm:LLBLGenProDataSource ID="dsOrganisationRole" runat="server" DataContainerType="TypedList"
     EnablePaging="True" TypedListTypeName="RisycomLLBL.TypedListClasses.DetailOrganisationRoleTypedList, RisycomLLBL">
 </rm:LLBLGenProDataSource>

In the pagePreRender i do this:

RadAjaxManager.GetCurrent(Page).ClientEvents.OnRequestStart = "onRequestStart"; 

Greetings
Joost





1 Answer, 1 is accepted

Sort by
0
Kostadin
Telerik team
answered on 10 Jul 2013, 07:10 AM
Hello Joost,

Could you please provide us with a small runnable sample in order to investigate the issue further? Meanwhile you could check out the following help article.

Regards,
Kostadin
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.
Tags
Grid
Asked by
Joost
Top achievements
Rank 1
Answers by
Kostadin
Telerik team
Share this question
or