2017-04-19 16 views
0

私はag-gridを使用してサーバーから1行のデータを返します。データはサーバーから返され、グリッドに設定されますが、データは表示されません。 これは私のグリッドです:angularjs ag-gridは行データを表示しません

$scope.lastResultGridOptions = { 
    rowData: $scope.jobResult, 
    suppressCellSelection: true, 
    suppressSorting: true, 
    enableFilter: true, 
    enableColResize: true, 
    angularCompileRows: true, 
    angularCompileHeaders: true, 
    suppressMenuHide: true, 
    columnDefs: [{ 
     field: 'StartDate', 
     filter: 'text', 
     headerName: 'Start Date', 
     cellClass: 'wrap-text', 
     minWidth: 10 
    }, { 
     field: 'EndDate', 
     filter: 'text', 
     headerName: 'End Date', 
     cellClass: 'wrap-text', 
     minWidth: 40 
    }, { 
     field: 'IsSuccess', 
     filter: 'text', 
     headerName: 'Result Status', 
     cellClass: 'wrap-text', 
     minWidth: 40 
    }, { 
     field: 'DateCompleted', 
     filter: 'text', 
     headerName: 'Date Completed', 
     cellClass: 'wrap-text', 
     minWidth: 40 
    }] 
}; 

この関数は、初期化時に呼び出されます。

$scope.refreshLastResultGrid = function() { 
jobResult.paged().$promise.then(function (results) { 
    $scope.jobResult = results; 
    $scope.lastResultGridOptions.rowData = $scope.jobResult; 

    if ($scope.lastResultGridOptions.api) { 
     $scope.lastResultGridOptions.api.setRowData(); 
     $scope.lastResultGridOptions.api.sizeColumnsToFit(); 
    } 
}, function (error) { 
$scope.messageModalVariables = { 
messageTitle: 'Error Refreshing Job Result', 
messageDisplay: 'API Error. Could not retrieve job results.', 
messageType: 'Error', 
okIsHidden: false, 
yesNoIsHidden: true 
}; 
$scope.openMessageModal($scope.messageModalVariables); 
     }); 
    }; 

$scope.refreshLastResultGrid(); 

これは、行を返すサーバーへのサービスコールです:

angular.module('vAnalyzeApp.services') 
.factory('JobResult', function($resource, configSettings) { 
var jobresult = $resource(configSettings.apiServiceUrl + 'api/v1/jobresult', {}, { 
    'paged': { 
    method: 'GET', 
    isArray: false, 
    transformResponse: function(data, headers) { 
     var count = headers('Count'); 
     return { 
     count: angular.fromJson(count), 
     results: angular.fromJson(data) 
     }; 
    } 
    } 
}); 
return jobresult; 
}); 

私はデバッグrefreshLastResultGrid機能とresultsがサーバから戻ってきて、$scope.lastResultGridOptions.rowDataに設定されています。 setRowData()機能はエラーなく完了しましたが、データはグリッドに表示されません。 グリッドのスクリーンショットは次のとおりです。 enter image description here

データがグリッドに表示されないのはなぜですか?

UPDATE 結果オブジェクトである:

public class JobParameterDto 
{ 
    public DateTime StartDate { get; set; } 
    public DateTime EndDate { get; set; } 
    public string SourceDB { get; set; } 
    public string TargetDB { get; set; } 
    public Nullable<DateTime> DateCompleted { get; set; } 
    public Nullable<bool> IsSuccess { get; set; } 
} 

Iは、結果オブジェクトを表示すると、これは正しいデータが返される:

  • 開始日:'01/01/2016T00:00: 00 '
  • EndDate:'11/01/2016T00:00:00'
  • TargetDB: 'MainDB'
  • SourceDB: 'WrhDB'
  • IsSuccess:ヌル
  • DateCompleted:ヌル
+0

$ scope.jobResult = results.dataについて –

+0

results.dataは上記のJobParameterDtoオブジェクトです。 –

答えて

0

あなたがグリッド行を設定するapi.setRowDataを使用する必要があります。 results.dataArrayであることを確認してください。rowDataArrayとなります。

... 
jobResult.paged().$promise.then(function (results) { 
    $scope.jobResult = results instanceof Array?results:[results]; 
    if ($scope.lastResultGridOptions.api) { 
     $scope.lastResultGridOptions.api.setRowData($scope.jobResult); 
     $scope.lastResultGridOptions.api.refreshView(); 
     $scope.lastResultGridOptions.api.sizeColumnsToFit(); 
    } 
}, function (error){ 
... 
+0

同じ結果...データなし –

+0

サンプル結果オブジェクトを共有できますか? –

+0

上記のオブジェクトデータを追加しました。ヌルのフィールドが2つあります。他のフィールドにはテキストがあります。 –

関連する問題