在使用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' };
}
});
但不起作用。
答案 0 :(得分:9)
sorttype
作为函数的用法对于jqGrid的任何本地数据类型都是有用的,或者对于使用loadonce:true
jqGrid paremter和“remote”数据类型'json'或'xml'的情况。如果需要,您可以动态更改任何列的sorttype
。
我让你the new demo来演示这个功能。在开始时,网格将按“客户”列排序,列包含将被解释为文本字符串。结果显示在下面
Wenn我们勾选“设置自定义排序类型功能”复选框,网格将按照下一张图片显示进行排序
为了实现这样的排序,我定义了函数
var myCustomSort = function(cell,rowObject) {
if (typeof cell === "string" && /^test(\d)+$/i.test(cell)) {
return parseInt(cell.substring(4),10);
} else {
return cell;
}
}
和复选框上的'change'事件处理程序
$("#customsorttype").change(function() {
var isChecked = $(this).is(':checked');
if (isChecked) {
cm.sorttype = myCustomSort;
} else {
cm.sorttype = "text";
}
grid.trigger("reloadGrid");
});
其中grid
为$("#list")
。
如果再次单击该复选框,将使用sorttype:"text"
的原始排序方法。