在角度UIGrid中使用外部分页和行选择

时间:2015-10-12 05:58:38

标签: angularjs angular-ui angular-ui-grid angular-ui-select

我正在使用AngularJS UI Grid,当我使用useExternalPagination时,useExternalSorting属性为true,Rowselection不起作用。  下面是我的网格属性

    $scope.gridOption = {
        'excessRows': 20, 
        enableSorting: true,
        enableRowSelection: true,
        enableRowHeaderSelection: true,
        multiSelect: true,
        enablePaginationControls: false,
        paginationPageSizes: [10,20],
        paginationPageSize: 10,
        rowHeight: 160, 
        minRowsToShow: 6,
        useExternalPagination: true,
        useExternalSorting: true,
        rowTemplate: 'temp.html'
    };

我在onRegisterApi中的外部分页,

$scope.gridOption.onRegisterApi = function(gridApi) {
$scope.gridApi = gridApi;
    gridApi.pagination.on.paginationChanged($scope, function(newPage, pageSize) {
                    pagination.pageNumber = newPage;
                    pagination.pageSize = pageSize;
                    setData();
    });
};

   function setData() {
    http.get().then(function(data) {
    $scope.gridOption.totalItems = data.total;
    $scope.gridOption.data =  data.grid;
            $timeout(function() {
              $scope.gridApi.selection.selectRow($scope.gridOption.data[0]);
            },1000);
        }

如上所述,我正在选择网格中的第一个数据。 $ scope.gridApi.selection.selectRow($ scope.gridOption.data [0]);但这不是选择第一行。

如果我删除属性useExternalPagination,则useExternalSorting selectRow正在选择指定的Row ..我需要使用externalpagination和rowselection选项。我在代码中遗漏了什么吗?

任何帮助......

提前致谢!!!

1 个答案:

答案 0 :(得分:1)

我创建了一个带有useExternalPagination,useExternalSorting和enableRowSelection功能的示例pluncker。

http://plnkr.co/edit/I67c3xTkBeXq5OnMkIad?p=preview

清单:1)确保使用的是最新版本的ui-grid(3.0.7)            2)检查是否已添加所有必需的依赖项。

HTML:

<div ui-grid="gridOptions" ui-grid-selection ui-grid-pagination class="grid"></div>

JS:

  $scope.gridOptions = {
    paginationPageSizes: [25, 50, 75],
    paginationPageSize: 25,
    useExternalPagination: true,
    useExternalSorting: true,
    enableRowSelection: true,
    enableSelectAll: true
 };