如何设置始终选择的第一行ui-grid

时间:2016-06-13 19:44:09

标签: angularjs angular-ui-grid

我正在通过api和教程寻找这个功能,但发现只选择了第一个网格init中的第一行,

 gridApi.selection.selectRow($scope.gridOptions.data[0]);

我试图在onRegisterApi内或过滤器功能

中使用此功能
     $scope.filter = function() {
            $scope.gridApi.grid.refresh();
            $scope.gridApi.selection.selectRow($scope.gridOptions.data[0]);
        }

       $scope.singleFilter = function( renderableRows ){
           var matcher = new RegExp($scope.filterValue);
           renderableRows.forEach( function( row ) {
               var match = false;
               [
                   // 'id',
                   // 'study.name',
                   'title',
                   'occuredDate',
                   // 'eventType.name',
                   'description',
                   'createdDate' ,
                   // 'priority.name',
                   'severity.name',
                   'status.name',
                   'createdDate'
               ].forEach(function( field ){
                   if (field.indexOf('.') !== '-1' ) {
                       field = field.split('.');
                   }
                   if ( row.entity.hasOwnProperty(field) && row.entity[field].match(matcher) || field.length === 2 && row.entity[field[0]][field[1]].match(matcher)){
                       match = true;
                   }

               });
               if ( !match ){
                   row.visible = false;
               }
           });
           return renderableRows;
       };

但没有任何帮助。我需要始终选择第一行,即使我通过列过滤数据或使用单个过滤器过滤数据。在ui-grid中有可能吗?

my plunker

1 个答案:

答案 0 :(得分:3)

尝试将以下行添加到gridApi.selection.on.rowSelectionChanged - 功能:

gridApi.selection.selectRow($scope.gridOptions.data[0]);

这样就会始终选择第1行。

分叉的傻瓜:plunkr

编辑:

当第一条记录始终可见时,请在返回之前将行renderableRows[0].visible = true;添加到过滤器功能中:plunkr