Javascript JsGrid排序在自定义列上不起作用
排序功能将不再适用于使用itemTemplate和headerTemplate的列 你可以从墙上看到小提琴 如您所见,在列Client ID中,排序工作得非常好。但在“客户机名称”列上,排序不起作用,因为我使用itemTemplate和headerTemplate进行自定义 任何解决方法都值得赞赏 代码如下:Javascript JsGrid排序在自定义列上不起作用,javascript,sorting,jsgrid,Javascript,Sorting,Jsgrid,排序功能将不再适用于使用itemTemplate和headerTemplate的列 你可以从墙上看到小提琴 如您所见,在列Client ID中,排序工作得非常好。但在“客户机名称”列上,排序不起作用,因为我使用itemTemplate和headerTemplate进行自定义 任何解决方法都值得赞赏 代码如下: $("#jsGrid").jsGrid({ width: "100%", sorting: true, paging: true, data: [{
$("#jsGrid").jsGrid({
width: "100%",
sorting: true,
paging: true,
data: [{
ClientId: 1,
Client: "Aaaa Joseph"
},
{
ClientId: 2,
Client: "Zzzz Brad"
},
{
ClientId: 3,
Client: "Mr Nice Guy"
}
],
fields: [{
width: 80,
name: "ClientId",
type: "text",
title: "Client ID"
},
{
width: 80,
itemTemplate: function(value, item) {
return "<div>" + item.Client + "</div>";
},
headerTemplate: function() {
return "<th class='jsgrid-header-cell'>Client Name</th>";
}
},
]
});
In name是与列关联的数据项的属性。在标题上单击此_sortData函数将调用排序数据。配置将在此处使用此名称。因此,您必须提供此配置,否则它将为空,并且在标题单击时没有数据排序
请在jsgrid.js中搜索以下函数
在上面的代码中,sortField.name作为列配置,它必须是必需的
演示
$jsGrid.jsGrid{
宽度:100%,
排序:对,
是的,
数据:[
{客户ID:1,客户:Aaaa Joseph},
{客户ID:2,客户:Zzzz Brad},
{客户ID:3,客户:好人先生}
],
字段:[
{
宽度:80,
姓名:ClientId,,
类型:文本,
标题:客户ID
},
{
宽度:80,
名称:'Client',
itemTemplate:函数值,项{
return+item.Client+;
},
headerTemplate:函数{
返回客户端名称;
}
},
]
};
_sortData: function() {
var sortFactor = this._sortFactor(),
sortField = this._sortField;
if (sortField) {
this.data.sort(function(item1, item2) {
return sortFactor * sortField.sortingFunc(item1[sortField.name], item2[sortField.name]);
});
}
},