在DTOptionsBuilder中选中全部复选框

时间:2015-11-18 09:44:24

标签: angularjs select checkbox

我使用angularjs和DTOptionsBuilder来显示网格表。 我为第一列创建了“全选”复选框(此列在每行显示一个复选框。)

这是HTML源代码:

<table dt-column-defs="dtColumnDefs" datatable="ng" dt-options="dtOptions" class="table table-bordered table-hover table-res" id="dataTables-res">

<thead>
<tr >
<th style="width: 15px;">
<input type="checkbox" ng-click="checkAllRes()" ng-model="selectedAllRes['checked']" >
<th >
...
<th >
<th translate="TABLE_RE.COMMENTS">Comments</th>
</tr>
</thead>

控制中的源代码:

    $scope.dtOptions = DTOptionsBuilder.newOptions().withOption('order', [1 ,"desc"]).withOption('processing', true).withPaginationType('full_numbers');

    $scope.checkAllRes =  function()
    {
    var selectObject  = {};
     if ($scope.selectedAllRes['checked']) {
       angular.forEach($scope.res, function (item) {
             selectObject[item.resId] = true
        });
     }
     $scope.selectedRes =  selectObject ;
    };

我的问题是: 当我单击全选复选框时,将检查所有页面上的所有行。 我想要:

  • 仅检查当前页面上的行。而且,当我点击其他页面时,选中全部复选框将取消选中。
  • 当我点击之前选中了全选复选框的旧页面时,我看到此页面上的所有行都被选中,并且选中了全选复选框。 (总而言之,我喜欢它与Google Mail页面上的工作方式相同。)

感谢您的帮助!

0 个答案:

没有答案