如何使Angular ui网格最初基于数据扩展行?

时间:2015-11-06 09:05:32

标签: javascript angularjs angular-ui-grid

我正在使用ui-grid来显示数据列表并显示网格我试图根据数据扩展某些行。

我想在onRegisterApi事件中执行此操作:

scope.GridOptions = {
    data: properties,
    columnDefs: 
    [
        { name: "Full Address", field: "FullAddress" },
        { name: "Suburb", field: "Suburb" },
        { name: "Property Type", field: "PropertyType" },
        { name: "Price", field: "Price", cellFilter: 'currency'},
        { name: "Status", field: "Status" },
        { name: "Sale Type", field: "SaleType" }, 
        { name: "Date Created", field: "CreateDate", cellFilter: "date:'dd/MM/yyyy HH:mma'"}
    ],
    expandableRowTemplate: 'template.html',
    expandableRowHeight: 200,
    onRegisterApi: (gridApi) => 
    {
        gridApi.expandable.expandAllRows();
    }
};

问题是gridApi.expandable.expandAllRows()扩展了所有分组的部分。我看到有一个expandRow函数,但我不知道如何使用它代替expandAllRows函数。我真的想扩展将列Status设置为特定值的组。有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:6)

这是一种处理选择行扩展的方法。我创建了一个Plunker链接(http://plnkr.co/edit/CSaROQqKxYnkoxm2Tl6b?p=preview),我正在扩展所有偶数行。以类似的方式,您可以迭代数组并展开所需的行。

包括:
    " -x"控制器中的依赖

展开第一行:

grep

答案 1 :(得分:0)

可能我迟到了。 但它可能对其他人有所帮助。

我采用了与SaiGiridhar相同的插图示例,但修改了

$timeout(function() {
    var rows = $scope.gridApi.grid.rows;
    for(var i=0; i < rows.length; i++){
      if(i%2 === 0){
        var entity = (rows.length && rows[i]) ? rows[i].entity : null;
        $scope.gridApi.expandable.toggleRowExpansion(entity);
      }
    }
});

$scope.$$postDigest(function() {
    var rows = $scope.gridApi.grid.rows;
    for(var i=0; i < rows.length; i++){
      if(i%2 === 0){
        var entity = (rows.length && rows[i]) ? rows[i].entity : null;
        $scope.gridApi.expandable.toggleRowExpansion(entity);
      }
    }
});