2016-08-09 28 views
0

Hier Codegrid.appScope funktioniert nicht mit Paging

Erstellen von Bearbeitungsschaltfläche in jeder Zeile.

var statusTemplate = '<button type="button" class="btn btn-default" ng-click="grid.appScope.add(lg,{{row.entity.StudentID}})">Add</button> '; /** <div> {{row.entity.StudentID}}</div>**/ 
      $scope.studentModel = { 
       paginationPageSizes: [10, 20, 75], 
       paginationPageSize: 10, 
       useExternalPagination: true, 
       useExternalSorting: true, 
       enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER, 
       enableVerticalScrollbar: uiGridConstants.scrollbars.NEVER, 
       columnDefs: [ 
       { field: 'StudentID', displayName: 'No.' }, 
       { field: 'StudentName', displayName: 'Name' }, 
       { field: 'Height', displayName: 'Height' }, 
       { 
        field: 'StudentID', 
        displayName: 'status', 
        cellTemplate: statusTemplate 
       } 
       ], 
       onRegisterApi: function (gridApi) { 
        $scope.gridApi = gridApi; 
        $scope.gridApi.core.on.sortChanged($scope, function (grid, sortColumns) { 
         if (sortColumns.length == 0) { 
          paginationOptions.sort = null; 
          paginationOptions.sortBy = 'StudentID'; 
         } else { 
          paginationOptions.sort = sortColumns[0].sort.direction; 
          paginationOptions.sortBy = sortColumns[0].field; 
         } 
         $scope.getAllUser(); 
        }); 
        gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) { 
         paginationOptions.pageNumber = newPage; 
         paginationOptions.pageSize = pageSize; 
         $scope.getAllUser(); 

        }); 
       } 
      }; 

    $scope.add = function (size, id) { 
      console.log(id); 
}); 

Ich habe 3 Seite im Raster.

Auf der ersten Seite, ng-click="grid.appScope.add(lg,{{row.entity.StudentID}}) Bindung (Rendering) perfekt und klicken Sie auf die Schaltfläche und dann richtige ID auf Konsole Ergebnis.

Aber wenn ich auf der zweiten Seite gehen dann StudentID perfekt (mit F12). Aber wenn ich auf einen beliebigen Button auf der zweiten Seite klicke, bekomme ich die erste Seite studentID.

grid.appScope funktioniert nur erste Seite. Es funktioniert nicht auf anderen Seiten (Rendering perfekt, aber auf Klick geben Sie falsche ID).

Wie löst man dieses Problem?

Antwort

0

Es wird leicht zu verstehen sein, wenn Sie eine Plunkr erstellen. ab sofort kann ich nur vorschlagen, dass Browser Inspect Tool verwenden, versuchen Sie zu überprüfen, ob diese Vorlage ist immer noch auf der zweiten Seite sowie

+0

werde ich nächsten 48 Stunden hinzufügen. Es braucht etwas Zeit. – user2960398

+0

ab sofort kann ich nur vorschlagen, dass mit browser inspect tool, zu überprüfen, ob diese Vorlage immer noch auf der zweiten Seite sowie –

+0

Ja, cellTemplate auf jeder Seite und Rendering perfekt ist. Aber wenn ich dann klicke, gib mir die erste Seite cellTemplate ID. Ich habe auch überprüft, dass es mir keinen Zeilenindex anstelle von studentID gibt. – user2960398

0

Wenn ich create PLNKR Link für mein Problem während der Ausgabe gelöst wurde.

Es gab Syntax Problem wie

var statusTemplate = '<button type="button" class="btn btn-default" ng-click="grid.appScope.add(lg,row.entity.StudentID)">Add</button> '; 

row.entity.StudentID statt {{row.entity.StudentID}}

{{row.entity.StudentID}} Syntax hatte plnkr danach nicht mehr gearbeitet habe ich versucht, diese row.entity.StudentID und mein Problem ist gelöst.

Hier arbeiten Link: http://plnkr.co/edit/J8aDQR?p=preview