0

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

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

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

{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}

现在,我尝试通过“全名”设置过滤器,但不起作用。有任何想法吗 ?

4

1 回答 1

-1

因为默认情况下,每个 Backgrid 列名称对应于一个实际的模型属性名称,并且排序将根据每个模型中该属性的值进行排序。在您的情况下,您没有名为“fullname”的模型属性,但您可以通过定义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;
  }
}]
于 2014-01-23T09:25:33.267 回答