2017-04-19 61 views
0

我正在使用ag-grid从服务器返回1行数据。数据从服务器返回并在网格中设置,但数据不显示。 这是我的网格:angularjs ag-grid不显示行数据

$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; 
}); 

我在调试

$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 
    }] 
}; 

初始化时调用此函数refreshLastResultGrid功能和results从服务器返回并设置为$scope.lastResultGridOptions.rowDatasetRowData()函数完成时没有错误,但数据未显示在网格上。 这里是网格的屏幕截图: 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; } 
} 

当我认为结果对象,这是正确的数据返回:

  • 开始日期:'01/01/2016T00:00: 00'
  • 结束日期:'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个字段是'null'。其他领域有文字。 –