【问题标题】:Setting a column default value on angular ui grid在角度 ui 网格上设置列默认值
【发布时间】:2019-10-02 23:02:24
【问题描述】:

我有一个包含很多列的表,并且某些行可能具有未定义的值,因此我想根据列显示默认文本而不是空单元格。如何设置该值?

我希望是这样的:

columnDefs: [
    {name: 'Code', field: 'code', default: 'My default value for code column'},
    {name: 'Name', field: 'name', default: 'My default value for name column'}
];

谢谢

【问题讨论】:

  • 创建了一个issue,还没有答案。

标签: angularjs angular-ui-grid


【解决方案1】:

是的,你可以使用cellTemplate,看,这很简单:

columnDefs: [
  {name: 'Code', field: 'code', cellTemplate:'<div>{{row.entity.code="My default value for code column"}}</div>'},
  {name: 'Name', field: 'name', cellTemplate:'<div>{{row.entity.name="My default value for name column"}}</div>'}
];

【讨论】:

    【解决方案2】:

    使用cellTemplates:

      var codeTemplate = '<div ng-if="row.entity.code">{{row.entity.code}}</div>' +
        '<div ng-if="!row.entity.code">My Default Value for code column</div>';
    
      var nameTemplate = '<div ng-if="row.entity.name">{{row.entity.name}}</div>' +
        '<div ng-if="!row.entity.name">My Default Value for name column</div>';
    
      $scope.gridOptions = {
        enableSorting: true,
        columnDefs: [{
          name: 'Code',
          field: 'code',
          cellTemplate: codeTemplate
        }, {
          name: 'Name',
          field: 'name',
          cellTemplate: nameTemplate
        }],
        data: [{
          "code": "122",
          "name": "Maximus"
        }, {
          "code": "123",
          "name": "Minimus"
        }, {
          "code": null,
          "name": "Nocodeus"
        }, {
          "code": '',
          "name": "Emptyus"
        }, {
          "code": '124',
          "name": ""
        }, {
          "code": '',
          "name": ""
        }]
      };
    

    例如here

    【讨论】:

    • 此解决方案可行。但是,具有自定义“cellTemplate”的列存在过滤问题。它不起作用或返回部分结果
    【解决方案3】:

    我是通过对 valueFormatter 应用表达式来实现的

        columnDefs: [
            {name: 'Code', field: 'code', valueFormatter: 'value || My default value for code column'},
            {name: 'Name', field: 'name', valueFormatter: 'value || My default value for name column'}
        ];
    

    我觉得也可以通过对valueGetter应用表达式来实现

    【讨论】:

      猜你喜欢
      • 2015-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-28
      • 1970-01-01
      • 2016-05-10
      • 2011-03-23
      • 2023-03-17
      相关资源
      最近更新 更多