如何在angular UI网格中的columnDefs属性中设置过滤器

时间:2015-11-27 14:42:20

标签: angularjs angular-ui-grid

我在应用程序中有角度ui网格,如果任何字段值为null或为空,我希望隐藏字段。

   $scope.gridOptions = {
        paginationPageSize: 10,
        columnDefs: [
          { displayName: 'First Name', field: 'firstName', headerCellClass: "GridHeader" },
          { displayName: 'Last Name', field: 'lastName', headerCellClass: "GridHeader" },
          { displayName: 'Active Status', field: 'activeStatus', headerCellClass: "GridHeader" },
          { displayName: 'RoleName', field: 'roleName', headerCellClass: "GridHeader" },
        ]
    };

如何在现场放置过滤器。假设上面代码中的 rolename 为空/ null,则从网格中隐藏角色字段。

任何帮助和建议都非常感谢。在此先感谢:)

2 个答案:

答案 0 :(得分:0)

是的,我修好了。

var result = [];
var gridValue= [
      { displayName: 'First Name', field: 'firstName', headerCellClass: "GridHeader" },
      { displayName: 'Last Name', field: 'lastName', headerCellClass: "GridHeader" },
      { displayName: 'Active Status', field: 'activeStatus', headerCellClass: "GridHeader" },
      { displayName: 'RoleName', field: 'roleName', headerCellClass: "GridHeader" },
    ]; 

在响应中我检查了空值。

if(response.data != null)
{
    if (response.data.roleName === null) {
        result = gridValue.slice(0, 3);
    }
    else {
        result = gridValue;
    }
    $scope.gridOptions = {
        paginationPageSize: 10,
        columnDefs: result,
     };
}
这对我有帮助:)。

答案 1 :(得分:0)

我建议只使用

that.grid.columnDefs[3].visible = false;

我还没有经过测试,但它应该比从定义中删除列并将定义重新应用到网格中更有效。

我认为您还可以将可见性设置为检查数据的函数。

that.grid.columnDefs[3].visible = function () { 
    // replace with code checking grid.data
    return false;
}