user2827707
user2827707

Reputation: 437

How to access row data upon row Selection

I'm using ui-grid to display data.

I want to access a column's value when a row is selected. I've implemented a rowSelectionChange event, but I can't seem to access the data.

gridOptions:

$scope.gridOptions = {
paginationPageSizes: [10, 25, 50],
paginationPageSize: 25,   
useExternalPagination: true,
useExternalSorting: true,
multiSelect: false,
enableSelectAll: false,
columnDefs: [
  { name: 'Name', field: 'properties.Name'},
  { name: 'Address', field: 'properties.Address'},
  { name: 'PhoneNumber', field: 'properties.PhoneNumber'}
],

onRegisterApi: function(gridApi) {
    $scope.gridApi = gridApi;
    $scope.mySelectedRows = $scope.gridApi.selection.getSelectedRows();
    gridApi.selection.on.rowSelectionChanged($scope, function(row) {
        var msg = row.entity.Name;
        alert("Row Selected! " + msg);
    });
...

What am I missing?

Upvotes: 2

Views: 1437

Answers (2)

user2827707
user2827707

Reputation: 437

Found the solution by adding a breakpoint and looking at the value of row.entity. Changing it to row.entity.properties.Name fixed my problem.

Upvotes: 2

Tai Huynh
Tai Huynh

Reputation: 609

You should use row.entity.name instead of row.entity.Name

$scope.gridOptions = {
paginationPageSizes: [10, 25, 50],
paginationPageSize: 25,   
useExternalPagination: true,
useExternalSorting: true,
multiSelect: false,
enableSelectAll: false,
columnDefs: [
  { name: 'Name', field: 'properties.Name'},
  { name: 'Address', field: 'properties.Address'},
  { name: 'PhoneNumber', field: 'properties.PhoneNumber'}
],

onRegisterApi: function(gridApi) {
    $scope.gridApi = gridApi;
    $scope.mySelectedRows = $scope.gridApi.selection.getSelectedRows();
    gridApi.selection.on.rowSelectionChanged($scope, function(row) {
        var msg = row.entity.name; //change Name -> name.
        alert("Row Selected! " + msg);
    });
...

Upvotes: 1

Related Questions