我在查找当用户点击列对其进行排序时如何以编程方式修改发送到服务器的排序定义时遇到了一些困难。我在网格配置中添加了onSortCol
功能。在该函数中,我需要检查“Id”列是否处于除最后位置之外的任何排序位置。如果是,则应将其删除。
以下是我的尝试:
onSortCol: function (index, iCol, sortOrder) {
var grid = $(this);
var rawSorts = index.split(",");
if (rawSorts.length > 1) {
var idFieldIndex = -1;
var processedSorts = [];
for (i = 0; i < rawSorts.length; i++) {
var currentSort = rawSorts[i].match(/[^ ]+/g);
if (idFieldIndex === -1 && currentSort[0].toUpperCase() === "ID") {
idFieldIndex = i;
}
processedSorts.push({
field: currentSort[0],
direction: currentSort[1] || sortOrder
})
}
if (idFieldIndex !== -1) {
processedSorts.splice(idFieldIndex, 1);
for (i = 0; i < processedSorts.length; i++) {
if (i + 1 < processedSorts.length) {
grid.sortGrid(processedSorts[i].field + " " + processedSorts[i].direction);
}
else {
grid.setGridParam("sortorder", processedSorts[i].direction);
grid.sortGrid(processedSorts[i].field + " ", true);
}
}
return "stop";
}
}
}
答案 0 :(得分:1)
最简单的实现在我看来如下:你没有使用网格最初中的任何sortname
,并按 Id 排序如果sidx
为空,则为服务器端。这似乎是您实现需求所需要做的唯一事情。