我如何 return 在我的 JQGrid 中使用 getGridParam 自定义格式化程序?

How do i return custom formatter in my JQGrid using getGridParam?

这就是我想要做的:

var p = this.jqGrid("getGridParam"), cm = p.colModel

我能够获取 colModel,但我在模型中定义了某些自定义格式化程序,但未得到 returned。

{name:'HTML_DEVICE_CNT',index:'HTML_DEVICE_CNT', width:35, align:"center",editable:true, sortable: false,formatter:deviceDetailsPopup,resizable:false,hidden:hiddenDevice},
{name:'edit',index:'edit', width:20, align:"center",editable:true, sortable: false,formatter:contactDetailsPopup,resizable:false},                    

如何将 getGridParam 也获取到 return 自定义格式化程序?

解决方案取决于您使用的 jqGrid 的分支。 Free jqGrid 包含 iColByName 参数,这简化了通过名称获取 colModel 的项目。因此你可以使用像

这样的代码
var p = this.jqGrid("getGridParam"), cm = p.colModel, iColByName = p.iColByName;
var formatter1 = cm[iColByName.HTML_DEVICE_CNT].formatter;
var formatter2 = cm[iColByName.edit].formatter;

如果你在变量cmName中有列名那么你可以使用

var formatter3 = cm[iColByName[cmName]].formatter;

如果你必须使用旧版本的 jqGrid 那么你需要对 cm 数组的所有项目进行循环并将每个项目的 name 属性 与您要查找的列名称("edit""HTML_DEVICE_CNT")。例如,参见 the old answer 中的函数 getColumnIndexByName