Telerik RadGrid.MasterTableView.ExportToExcel()错误:查询结果不止一次枚举

时间:2013-04-19 14:50:47

标签: telerik radgrid

我有一个填充了一些数据的RadGrid。我有一个按钮,它将通过服务器端回调导出到Excel。服务器端代码如下。而且下面的错误。有什么建议吗?

RadGrid1.Rebind();
   RadGrid1.ExportSettings.IgnorePaging = true;
   RadGrid1.MasterTableView.ExportToExcel();

错误是:

  

查询结果不能多​​次枚举。   描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

     

异常详细信息:System.InvalidOperationException:无法多次枚举查询结果。

     

来源错误:

     

在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

     

堆栈追踪:

     

[InvalidOperationException:查询结果不能多​​次枚举。]      System.Data.Linq.SqlClient.OneTimeEnumerable 1.GetEnumerator() +884205 System.Data.Linq.SqlClient.SingleResult 1.GetEnumerator()+76      System.Linq.Buffer 1..ctor(IEnumerable 1来源)+302      System.Linq.d__0.MoveNext()+ 164      System.Linq.WhereSelectEnumerableIterator`2.MoveNext()+ 163      Telerik.Web.UI.GridResolveEnumerable.GetCollectionItemType(Boolean noItemsInEnumerator,Type& collectionItemType,Object& collectionFirstObject)+330      Telerik.Web.UI.GridResolveEnumerable.ParseProperties()+120      Telerik.Web.UI.GridResolveEnumerable.Initialize()+ 16      Telerik.Web.UI.GridResolveEnumerable.EnsureInitialized()+28      Telerik.Web.UI.GridEnumerableFromDataView..ctor(GridTableView所有者,IEnumerable枚举,布尔值CaseSensitive,布尔值autoGenerateColumns,GridColumnCollection presentColumns,String [] additionalField,Boolean retrieveAllFields)+242      Telerik.Web.UI.GridDataSourceHelper.CreateGridEnumerable(GridTableView owner,IEnumerable enumerable,Boolean caseSensitive,Boolean autoGenerateColumns,GridColumnCollection presentColumns,String [] additionalField,Boolean retrieveAllFields)+223      Telerik.Web.UI.GridDataSourceHelper.GetResolvedDataSource(GridTableView所有者,Object dataSource,String dataMember,Boolean caseSensitive,Boolean autoGenerateColumns,GridColumnCollection presentColumns,String [] additionalField,Boolean retrieveAllFields)+595      Telerik.Web.UI.GridTableView.get_ResolvedDataSource()+243      Telerik.Web.UI.GridTableView.CreateChildControls(IEnumerable dataSource,Boolean useDataSource)+42      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()+9      Telerik.Web.UI.GridTableView.DataBind()+ 363      Telerik.Web.UI.RadGrid.DataBind()+ 73      Telerik.Web.UI.RadGrid.AutoDataBind(GridRebindReason rebindReason)+2488      Telerik.Web.UI.RadGrid.RebindForExport()+ 119      Telerik.Web.UI.Grid.Export.TableViewExporter.PrepareForExport()+315      System.EventHandler.Invoke(Object sender,EventArgs e)+0      System.Web.UI.Control.OnPreRender(EventArgs e)+11056782      System.Web.UI.Control.PreRenderRecursiveInternal()+108      System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+3394

1 个答案:

答案 0 :(得分:2)

您不希望在导出前致电Rebind()。这有什么理由吗?您是在出口之前更改/操纵数据吗?

如果没有,则无需调用Rebind(),因为这实际上只是为了刷新数据源。