2017-04-19 1 views
0

J'utilise ag-grid pour renvoyer 1 ligne de données d'un serveur. Les données reviennent du serveur et sont définies dans la grille mais les données ne sont pas affichées. Ceci est mon grille:angularjs ag-grid n'affiche pas les données de ligne

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

Cette fonction est appelée lors de l'initialisation:

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

Ceci est l'appel de service au serveur qui retourne la ligne:

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

debugger dans la fonction refreshLastResultGrid et le results reviennent du serveur et sont définis sur $scope.lastResultGridOptions.rowData. La fonction setRowData() est complétée sans erreur mais les données n'apparaissent pas sur la grille. Voici une capture d'écran de la grille: enter image description here

Pourquoi les données ne s'affichent-elles pas dans la grille?

MISE À JOUR L'objet résultat est:

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

Quand je regarde l'objet de résultat ce sont les données correctes sont revenus:

  • StartDate: '01/01/2016T00: 00: 00 '
  • Date de fin: '11/01/2016T00: 00: 00'
  • TargetDB: 'MainDB'
  • SourceDB: 'WrhDB'
  • isSuccess: null
  • DateCompleted: null
+0

Qu'en est-il de $ scope.jobResult = results.data; –

+0

results.data est l'objet JobParameterDto illustré ci-dessus. –

Répondre

0

vous devez utiliser api.setRowData pour définir les lignes de la grille. Assurez-vous que results.data est un Array - ag-grid attendez rowData à Array.

... 
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

même résultat ... aucune donnée –

+0

pouvez-vous partager l'objet résultat de l'échantillon? –

+0

J'ai ajouté les données d'objet ci-dessus. Il y a 2 champs qui sont 'null'. Les autres champs ont du texte. –