jqgrid生成后,如何实现对特定列的自定义sorting?

是否有一种方法,我可以用它来覆盖/插入一个自定义函数“sorttype”的colModel中的一个特定的列后,它已经填充使用JavaScript(jQuery)?

我在这里find了一个例子: 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的任何本地数据types,或者用于loadonce:true jqGrid paremter与“remote”数据types“json”或“xml”。 如果需要,您可以dynamic更改任何列的sorttype

我为你演示了这个新function。 开始时,网格将按“客户”列sorting,列包含将被解释为文本string。 结果如下所示

在这里输入图像描述

我们选中checkbox“设置自定义sortingfunction”,网格将按下图所示进行sorting

在这里输入图像描述

为了实现这种sorting,我定义了这个函数

 var myCustomSort = function(cell,rowObject) { if (typeof cell === "string" && /^test(\d)+$/i.test(cell)) { return parseInt(cell.substring(4),10); } else { return cell; } } 

和checkbox上的“更改”事件处理程序

 $("#customsorttype").change(function() { var isChecked = $(this).is(':checked'); if (isChecked) { cm.sorttype = myCustomSort; } else { cm.sorttype = "text"; } grid.trigger("reloadGrid"); }); 

grid$("#list")

如果再次点击checkbox,将使用sorttype:"text"的原始sorting方法。