2017-12-08 11 views
0

ASP .Net MVC角度js、syncfusionグリッドを使用しています。NullReferenceException excelexport syncfusionグリッド

このエラーは、グリッドのデータローがフィルタリングされても、フィルタが適用されていない場合に機能するときに発生します。グリッドをフィルタリングして、フィルタリングしないようにする必要があります。

私のフィルタは次のようにコーディングされます

obj.filterColumn("ClientID", "equal", Id_ "and", true); 

私のグリッド:

jQuery("#myGrid").ejGrid({ 
           dataSource: dataManager, 
           columns: cols, 
           allowSelection: true, 
           enableAltRow: false, 
           enableRowHover: true, 
           isResponsive: true, 
           allowSearching: true, 
           selectionSettings: { selectionMode: ["row"] }, 
           allowFiltering: true, 
           allowSorting: true, 
           allowScrolling: true, 
           allowResizeToFit: true, 
           allowPaging: true, 
           pageSettings: { pageSize: 12 }, 
           toolbarSettings: { showToolbar: true, toolbarItems: [ej.Grid.ToolBarItems.ExcelExport] }, 
           toolbarClick: function (e) { 
               this.exportGrid = this["export"]; 
               if (e.itemName == "Excel Export") { 
        
                   this.exportGrid('/MyController/ExportToExcel') 
                   e.cancel = true; 
               
           }, 

輸出JS:

var gridObj = $("#myGrid").data("ejGrid"); 
    gridObj.export(url); 

コントローラ:

[System.Web.Http.ActionName("ExcelExport")] 
     [AcceptVerbs("POST")] 
     public void ExportToExcel() 
     { 
      string gridModel = HttpContext.Request.Params["GridModel"]; 
      GridProperties gridProperty = ConvertGridObject(gridModel); 

      ExcelExport exp = new ExcelExport(); 
      var items = _svc.GetItems(someFilters); 
      exp.Export(gridProperty, items, "Export.xlsx", ExcelVersion.Excel2010, false, false, "flat-saffron"); //the error i in this line 
     } 

スタックトレース:

[NullReferenceException: Object reference not set to an instance of an object.] 
    Syncfusion.JavaScript.DataSources.DataOperations.PerformFiltering(IEnumerable dataSource, List`1 filteredColumns) +193 
    Syncfusion.JavaScript.DataSources.DataOperations.Execute(IEnumerable dataSource, GridProperties property) +61 
    Syncfusion.EJ.Export.GridExcelExport.ExecuteResult(GridProperties GridModel, Object dataSource) +431 
    Syncfusion.EJ.Export.GridExcelExport.ExportHelper(GridProperties gridModel, Object dataSource) +777 
    Syncfusion.EJ.Export.GridExcelExport.Export(GridProperties gridModel, Object dataSource, Boolean multipleExport) +20 
    SwapZilla.Controllers.CollateralPostingController.ExportToExcel() in D:\Dev\MyProject\Controllers\MyController.cs:187 
    System.Web.Mvc.<>c__DisplayClass1.<WrapVoidAction>b__0(ControllerBase controller, Object[] parameters) +15 
    System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +252 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +34 
    System.Web.Mvc.Async.<>c__DisplayClass42.<BeginInvokeSynchronousActionMethod>b__41() +33 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +56 
    System.Web.Mvc.Async.<>c__DisplayClass39.<BeginInvokeActionMethodWithFilters>b__33() +76 
    System.Web.Mvc.Async.<>c__DisplayClass4f.<InvokeActionMethodFilterAsynchronously>b__49() +370 
    System.Web.Mvc.Async.<>c__DisplayClass4f.<InvokeActionMethodFilterAsynchronously>b__49() +370 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +57 
    System.Web.Mvc.Async.<>c__DisplayClass2a.<BeginInvokeAction>b__20() +32 
    System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +184 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +50 
    System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) +24 
    System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +22 
    System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +64 
    System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +22 
    System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +50 
    System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) +38 
    System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +22 
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +50 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +607 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +134 

私はグリッドやアイテムのデータソースの列が同じであることを確認し、そして濾過されていないがgird場合、それは輸出しているという事実によって確認されています。また、同じ行を持っているが、グリッドよりも行数が異なる項目の行をエクスポートしようとしていて、それが問題なくエクスポートされたため、問題はないと思う。

これを修正するにはどうすればよいですか?

答えて

0

質問を確認しましたが、報告された問題を再現できません。あなたが直面している問題のスクリーンショット/ビデオ

  1. シェア、以下の詳細を記入してください確認するにはhttp://www.syncfusion.com/downloads/support/forum/134986/ze/Exporting-743928412

    リンク以下のサンプルのリンクを見つけてください。

  2. 使用しているSyncfusion Essentialスタジオのバージョンの詳細を共有します。
  3. 使用している列の詳細を共有します。
  4. グリッドで使用しているアダプタの詳細を共有します。
  5. 上記のサンプルで問題を再現してください
関連する問題