在使用javascript(jQuery)填充后,是否有一种方法可以用于覆盖/插入colModel中特定列的自定义函数"sorttype"?
我在这里找到了一个例子:http://www.ok-soft-gmbh.com/jqGrid/CustomSorttype1.htm,其中sorttype是用初始设置实现的,但我之后需要更改它.
尝试:
var attName = grid.getGridParam("colModel")[1].name;
grid.setColProp(attName, { sorttype: function (cell) {
if (cell == '<div>x</div>') { return '0' } else { return '1' };
}
});
Run Code Online (Sandbox Code Playgroud)
但不起作用.
sorttype作为函数的用法可用于jqGrid的任何本地数据类型,或者在使用loadonce:true带有"remote"数据类型'json'或'xml' 的jqGrid paremter的情况下.如果需要,您可以sorttype动态更改任何列.
我为您制作了新演示以演示该功能.在开始时,网格将按"客户"列排序,列包含将被解释为文本字符串.结果显示如下

我们检查复选框"设置自定义排序类型功能",网格将按照下一张图片显示的顺序排序

为了实现这种排序,我定义了这个功能
var myCustomSort = function(cell,rowObject) {
if (typeof cell === "string" && /^test(\d)+$/i.test(cell)) {
return parseInt(cell.substring(4),10);
} else {
return cell;
}
}
Run Code Online (Sandbox Code Playgroud)
和复选框上的'更改'事件处理程序
$("#customsorttype").change(function() {
var isChecked = $(this).is(':checked');
if (isChecked) {
cm.sorttype = myCustomSort;
} else {
cm.sorttype = "text";
}
grid.trigger("reloadGrid");
});
Run Code Online (Sandbox Code Playgroud)
哪里grid是$("#list").
如果再次单击该复选框,sorttype:"text"将使用原始排序方法.