按型号子字段过滤

时间:2014-01-21 01:03:23

标签: backgrid

我需要通过模型子字段过滤Backgrid。我有来自服务器的下一个JSON字符串:

[{"iduser":
    {"iduser":1224,"apellido":"Agostini","nombre":"Juan Ignacio","dni":47121281}
  },
  {"iduser":
     {"iduser":1225,"apellido":"Alvarez","nombre":"Pedro","dni":4712312}
  }]

因此,我使用下一个自定义StringCell渲染显示用户fullname:

{name: 'fullname', label: 'Nombre completo', cell: Backgrid.StringCell.extend({
        render: function(){
            var user = this.model.get('iduser');
            var fullname = user.apellido + ", " + user.nombre;
            this.$el.html(fullname);
            return this;
        }
}), editable: false, sortable: true}

现在,我尝试按“fullname”设置过滤器,但不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:-1)

因为默认情况下,每个Backgrid列名称对应于实际的Model属性名称,并且排序将对每个模型中该属性的值进行排序。在您的情况下,您没有名为“fullname”的Model属性,但您可以通过定义sortValue列属性来估算它。

var columns = [{
  name: "fullname",
  label: "Nombre completo",
  cell: MyStringCell,
  editable: false,
  sortable: true,
  sortValue: function (model, colName) {
    var user = model.get("iduser");
    return user.apellido + ', ' + user.nombre;
  }
}]