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