ユーザーが任意のテーブル名をクリックするような要件があり、それぞれのデータを ag-grid にレンダリングする必要があります。
私はAngular js 1.xを使用しています。
私はすべての方法を試しました
$scope.gridOptions = {};
$scope.loadTableInGrid = function (tablename) {
$http.post($scope.url + "/getPagingRecordImportedTable", { 'dbname': $stateParams.dbname, 'tableName': tablename, 'pageNumber': 1 }).success(
function (response) {
$scope.names = response.records;
$scope.mdata = response.metadata;
console.log(response.records);
console.log(response.metadata);
var columnsize = 0;
for (var obj in $scope.mdata) {
if ($scope.mdata[obj]['columnsize'] > 20) {
columnsize = 20;
} else {
columnsize = $scope.mdata[obj]['columnsize'];
}
$scope.columnDefs.push({
"headerName": $scope.mdata[obj]['columnname'],
"field": $scope.mdata[obj]['columnname']
});
}
var gridDiv = document.querySelector('#myGrid');
alert(gridDiv);
new agGrid.Grid(gridDiv, $scope.gridOptions);
$scope.gridOptions.api.setColumnDefs( $scope.columnDefs);
$scope.gridOptions.api.setRowData(response.records);
$scope.gridOptions.api.refreshView();
console.log("-----------Data received");
}).error(function (data) {
alert(data);
});
} else {
$scope.reset();
$scope.resetGridTableName();
}
console.log(tablename);
};
テーブル名に従って、グリッドに列とレコードの両方を動的にロードする必要があります。しかし、常に「読み込み中」と表示され、レンダリングするものは何もありません。
例がある場合は、私のコードを参照またはリファクタリングしてください。