我需要通过模型子字段过滤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”设置过滤器,但不起作用。有什么想法吗?
答案 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;
}
}]